Parallel Programming with MPI/OpenMP – Online Format

The ETH Scientific IT Services (SIS) is pleased to announce a four-day course on Parallel Programming with MPI/OpenMP.
Because of the COVID-19 safety regulations at ETH Zurich this year the course is being held entirely online from August 24 – 27, 2020. 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.

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


To benefit from this course you should:

  • have 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);
  • be able to use the Linux command line (shell) including common tools.

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

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. 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 cannot grant you access to such 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. In case of questions, please contact the course organizer (see below).

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.

If you are interested in this course, please register here.

More information available here.

In case of questions, contact Thomas Wüst.