Oct 19 – 21, 2021
CET timezone

Advanced MPI


Message Passing Interface (MPI) is a dominant programming model on clusters and distributed memory architectures. This course is focused on users with some experience with MPI that want to deepen their knowledge. The course briefly recapitulates basic concepts and describes them in more detail. Then, more advanced concepts will be described (e.g., one-sided communication, parallel file I/O). Attendees will be able to immediately test and understand all these constructs in hands-on sessions.

This course was originally developed by Rolf Rabenseifner (HLRS). The content level of the course is 40% for beginners, 40% for intermediate, and 20% for advanced users.


40% for beginners, 40% for intermediate, and 20% for advanced users



Purpose of the course (benefits for the attendees)

After the course, attendees should know the majority of MPI functions and should be aware of their appropriate use in order to write highly scalable applications.

About the tutor(s)

Ondřej Meca holds a Ph.D. degree in Computer Science from VSB - Technical University of Ostrava, Czech Republic. He is currently a member of the Infrastructure Research Lab at IT4Innovations National Supercomputing Center. His research interests include verification of parallel algorithms, development of pre/post-processing algorithms for large-scale engineering problems, and development of highly-scalable linear solvers.

Claudia Blaas-Schenner is an active member of the MPI Forum, i.e., the standardization body for MPI, and acts as a chapter committee chair for MPI Terms and Conventions. Currently, she is affiliated at the VSC Research Center of TU Wien (Austria) where she is involved in teaching and responsible for developing a training and education program in HPC. She holds a Ph.D. in Technical Physics from TU Wien, has a strong backgroud in computational materials science, and more than 20 years of experience in applied HPC.



To run before the course
On the below link please find files which contain a simple test application to verify installation of an MPI library (see the README file). All you need is a C, C++, or Fortran compiler and an up-to-date MPI library. Use the link based on your archiving application:


The slides will be needed during the exercises. Please download it from the below link. The file contains internal references that work the best with Acrobat.



Please also download examples that will be needed during the course. 


MPI standard

Message-passing interface standard version 4.0 can be downloaded from 



Day 1:

  8:45 -  9:00 - Join

  9:00 -  9:05 - Welcome

  9:05 -  9:45 - Process model

  9:45 - 10:35 - Point to point

10:35 - 10:45 - Break

10:45 - 12:00 - Non-blocking communication

12:00 - 12:45 - Lunch

12:45 - 14:10 - Collective communication

14:10 - 14:20 - Break

14:20 - 15:00 - Non-blocking collective


Day 2:

  8:45 -  9:00 - Join

  9:00 -  9:40 - Groups and communicators

  9:40 -  9:50 - Break

  9:50 - 11:30 - Virtual topologies

11:30 - 12:00 - Derived datatypes (part 1)

12:00 - 12:45 - Lunch

12:45 - 14:20 - Derived datatypes (part 2)

14:20 - 14:30 - Break

14:30 - 15:00 - Fortran


Day 3:

  8:45 -  9:00 - Join

  9:00 - 10:30 - One side communication

10:30 - 10:40 - Break

10:40 - 12:00 - Shared memory one side communication

12:00 - 12:45 - Lunch

12:45 - 14:10 - Parallel I/O

14:10 - 14:20 - Break

14:20 - 15:00 - Short tour across the rest of MPI functionality



The course is partially supported by The Ministry of Education, Youth and Sports from the Large Infrastructures for Research, Experimental Development and Innovations project  “e-Infrastruktura CZ – LM2018140”, partially by the PRACE-6IP project - the European Union’s Horizon 2020 research and innovation programme under grant agreement No. 823767.



This training will be an online event. Technical details about joining will be sent to the accepted registrants before the event.


Attendees should be familiar with basis concepts of MPI. For the hands-on sessions they should also know how to work on the Unix/Linux command line and be able to progam in either C/C++ or Fortran.

Capacity and Fees

Capacity limited to 30 participants.

The training is free of charge for all participants.