• 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.

1,130 enrolled on this course

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 seconds Hello, 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 seconds I’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 seconds It 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 seconds Hello 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.


  • Week 1

    Overview and the principles of One-Sided MPI Communication

    • Introduction

      Welcome and introduction to the course material and instructors and the chance to introduce yourself.

    • Introduction to one-sided communication

      In this section we explain, why one-sided communication is used. The goal is to access the memory of other processes to either store (PUT) or retrieve (GET) data. We will also discuss the pros and cons of one-sided communication.

    • The three categories of one-sided routines

      - How to define/allocate the memory other processes can access? - Which routines to use for accessing the exposed memory? - Do we need memory "guards" to protect it from data corruption? You will find the answers in this activity!

    • Functional opportunities, summary and quiz

      You may be asking if one-sided communication is really needed? Why not always use send and receive routines? But sometimes one-sided communication has advantages over two-sided. We will look at an example now.

  • Week 2

    Details and examples of One-Sided MPI communication

    • Windows and their remote access

      Now it's time to take a deep-dive into the definitions of the window creation/allocation routines, and their remote access routines.

    • Synchronization routines

      We will cover different synchronization routines and also discuss the Fortran problems with one-sided communication.

    • Exercise, Summary and Quiz

      We have completed our sessions on one-sided communication. Now it is time for some fun exercises and a quiz.

When would you like to start?

Start straight away and learn at your own pace. If the course hasn’t started yet you’ll see the future date listed below.

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!)
$279.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.