• Partnership for Advanced Computing in Europe (PRACE)

MPI: A Short Introduction to One-sided Communication

Learn the details of one-sided communication in MPI programming.

MPI: A Short Introduction to One-sided Communication
  • Duration2 weeks
  • Weekly study4 hours
  • LearnFree
  • Extra BenefitsFrom $44Find out more

Discover the advantages to one-sided communication in parallel programming

Message Passing Interface (MPI) is a key standard for parallel computing architectures. On this course, you’ll learn the essential concepts of one-sided communication in MPI, as well as the advantages of the MPI communication model.

You’ll learn the details of how exactly MPI works, as well how to use Remote Memory Access (RMA) routines. Examples, exercises, and tests will be used to help you learn and explore.

Skip to 0 minutes and 6 secondsHello, I am Lucienne Dettki, one of your educators of the One-sided Communication MOOC. I suppose that you are familiar with MPI and that you also remember Two-sided Communication?

Skip to 0 minutes and 17 secondsI’ll recap: Behind me, you can see two processes and both are busy. Now the process on the left wants to receive some data from the other process. But it has to wait till the remote process stops working and starts to send the data. Finally it can receive the data from the sending process. This was Two-sided Communication. One-sided is a new communication concept. Again we have two processes and both are busy. Now you can see, that the process on the right has made visible a part of its data. And again, the process on the left wants to receive some data from the other process. But this time, it can manage getting the data without the remote process being involved.

Skip to 0 minutes and 59 secondsIt can get the data needed and it can also put data to the remote process, while the remote process continues its work. Do you want to learn more about this new communication concept? Then join our MOOC on One-Sided Communication. We are looking forward to seeing you there.

Skip to 1 minute and 16 secondsHello everyone, my name is Zheng Meyer-Zhao, one of the educators of the MPI one-sided communication MOOC. I work at ASTRON, the Netherlands Institute for Radio Astronomy. This MPI one-sided communication MOOC was developed jointly by ASTRON, HLRS, IUCC and SURFsara based on an MPI course given by HLRS. During the course, there are exercises with code snippets to get you familiar with the one-sided communication concept, and there are quizzes you can answer in order to recap the learning material and to check whether you've understood the topics.

What topics will you cover?

  • MPI one-sided communication
  • Window creation and allocation
  • Remote Memory Access (RMA) routines
  • Synchronization calls
  • Examples and exercises

When would you like to start?

Most FutureLearn courses run multiple times. Every run of a course has a set start date but you can join it and work through it after it starts. Find out more

  • Available now

What will you achieve?

By the end of the course, you‘ll be able to...

  • Apply MPI one-sided communication to your communication patterns in your MPI applications
  • Explain the main advantages and disadvantages of MPI one-sided communication
  • Design your program using methods of MPI communication that prevent deadlocks and ensure the correctness of the program
  • Improve scalability of your program by substituting non-scalable solutions with scalable one-sided approaches

Who is the course for?

The course is aimed at anyone familiar with MPI who wants to learn to program using one-sided communication.

What software or tools do you need?

To take part in this course you don’t need a supercomputer – just an MPI environment on your laptop or computer.

For users of screen readers, the text of the course contains all necessary information, and images are additional illustrations. Unfortunately the quizzes in this course cannot be made screen-reader accessible, however learners can achieve all learning outcomes and understand all the content without completing these.

Who will you learn with?

I'm head of Parallel Computing – Training and Application Services at HLRS and member of the MPI forum. In workshops & summer schools I teach parallel programming models in many universities and labs.

I work at HLRS Parallel Computing - Training and Application Services. I develop the conceptual design and contents for our courses together with my colleagues and I organize PRACE and HLRS trainings.

I work as a software engineer for HPC applications at ASTRON in The Netherlands. I spend most of my time developing software, giving trainings on HPC related topics, and developing training materials.

I'm cluster computing advisor and coordinator of trainings at SURFsara in the Netherlands. I give support to researchers in their daily work and contribute to provide training on different HPC topics.

Who developed the course?

Partnership for Advanced Computing in Europe (PRACE)

The Partnership for Advanced Computing in Europe (PRACE) is an international non-profit association with its seat in Brussels.

Join this course

Start this course for free, upgrade for extra benefits, or buy Unlimited to access this course and hundreds of other short courses for a year.


Join free and you will get:

  • Access to this course for 4 weeks


Upgrade this course and you will get:

  • Access to this course for as long as it’s on FutureLearn
  • A print and digital Certificate of Achievement once you’re eligible

Unlimited (New!)
$259.99 for one year

Buy Unlimited and you will get:

  • Access to this course, and hundreds of other FutureLearn short courses and tests for a year
  • A printable digital Certificate of Achievement on all short courses once you’re eligible
  • The freedom to keep access to any course you've achieved a digital Certificate of Achievement on, for as long as the course exists on FutureLearn
  • The flexibility to complete your choice of short courses in your own time within the year
Find out more about upgrades or Unlimited.