We are pleased to announce a four-day course in Parallel Programming with MPI/OpenMP. Because of the COVID-19 safety regulations at ETH Zurich this year the course is being held again entirely online from August 23 - 26, 2021. The course will be given by Dr. Rolf Rabenseifner from HLRS.

Dr. Rabenseifner is a world-renowned expert in parallel computing and teacher of courses in the areas of parallel programming with the Message Passing Interface (MPI), shared memory parallelization with OpenMP, and the Partitioned Global Address Space (PGAS) languages UPC and Co-Array Fortran.


The aim of this course is to give people with some programming experience an introduction into the parallel programming models MPI and OpenMP. It starts on beginners level but also includes advanced features of the current standards. Hands-on sessions (in C and Fortran) will allow users to immediately test and understand the constructs of the Message Passing Interface (MPI) and the shared memory directives of OpenMP.

The first two days are an introduction to MPI and OpenMP, which includes a deep introduction to nonblocking MPI communication, and also touches newer OpenMP-4.0 features, such as the vectorization directives, thread affinity and OpenMP places.

The last two days are dedicated to advanced methods in MPI, e.g., the group and communicator concept, process topologies, derived data types, and one-sided communication. This course also includes latest features of MPI-3.0/3.1, e.g., the new MPI-3.0 shared memory programming model within MPI, the new Fortran language binding, nonblocking collectives, and neighborhood communication.

The preliminary agenda can be found here.

Content level: 40% for beginners, 30% intermediate, 30% advanced.


The course is being held entirely online using the Zoom video conferencing system.

You need to have some experience with the Linux command line, shell commands and some basic programming knowledge in C/C++ or Fortran (or good knowledge of another C-like programming language in order to quickly adopt to a new syntax).

To be able to do the hands-on exercises of this course, you need a computer with an OpenMP capable C/C++ or Fortran compiler and a corresponding, up-to-date MPI library (in case of Fortran, the mpi_f08 module is required).

If you have access, you can also use a high performance compute (HPC) cluster for the exercises (such as e.g. Euler, for members of ETH Zurich; Euler has these software requirements readily available). Please note that the course organizers will not grant you access to an HPC system nor any other compute environment. Therefore, please make sure to have a functioning working environment / access to an HPC cluster prior to the course.

Therefore, please make sure to have a functioning working environment / access to an HPC cluster prior to the course. In case of questions, please contact the course organizer (see below).

Participants will be instructed how to test their environment before the start of the course.

Participation and registration fees

This course is open to members of both academia and industry. The maximal number of participants is 40. The first 30 participants are selected according to a strict "first-come-first-serve" rule. Surplus participants will come on a waiting list and are selected according to priorities of the course organizer (Scientific IT Services).

It is possible to register

  • for the full four-day course; this is our recommendation and participants who choose full attendance are given highest priority;

  • the first two days (beginners/intermediate level); note, however, that modern parallel computers are all clusters of shared memory nodes and the last two days (days 3/4) address methods to efficiently use such hierarchical hardware; therefore, beginners/intermediate level participants are better served with full four-day attendance;

  • the last two days (intermediate/advanced level); participants who choose this option must be really familiar with the topics covered in the first two days (days 1/2), especially with nonblocking MPI methods to prevent serialization or deadlocks in neighbor communication.

The registration fees are as follows:

  • Swiss academia (i.e. ETH/EPFL and ETH domain research institutes, cantonal universities and universities of applied sciences): 420 CHF for the full four-day course; 280 CHF for two-day course attendance (either days 1/2 or 3/4);

  • academia (other than above): 480 CHF for the full four-day course; 320 CHF for two-day course attendance (either days 1/2 or 3/4);

  • industry: 1200 CHF for the full four-day course; 800 CHF for two-day course attendance (either days 1/2 or 3/4).

Please note that we only accept credit card payments.

The registration is now closed.

In case of questions, contact Thomas Wüst.