Advanced Parallel Programming with MPI and OpenMP (training course, online)

Start
1st December 2025 07:45 AM
End
4th December 2025 03:15 PM
Location
online

(Course no. 862025 in the training programme 2025 of Forschungszentrum Jülich)

This course will take place as an online event. The link to the streaming platform will be provided to the registrants only. The course will be held in English.

Contents:

The focus is on advanced programming with MPI and OpenMP. The course is aimed at participants who have already some experience with C/C++ or Fortran and MPI and OpenMP, the most popular programming models in High Performance Computing (HPC).

The course will teach newest methods in MPI-3.0/3.1/4.0/4.1 and OpenMP-4.5 and 5.0, which were developed for the efficient use of current HPC hardware. MPI-related topics are the group and communicator concept, process topologies, derived data types, the new MPI-3.0 Fortran language binding, one-sided communication and the new MPI-3.0 shared memory programming model within MPI. OpenMP-related topics are the OpenMP-4.0/4.5/5.0 extensions, as the vectorization directives, thread affinity and OpenMP places. (The GPU programming with OpenMP directives is not part of this course.) The course also contains performance and best practice considerations.

Hands-on sessions (in C and Fortran) will allow users to immediately test and understand the taught constructs of the Message Passing Interface (MPI) and the shared memory directives of OpenMP. Most MPI exercises will (in addition to C and Fortran) also be available for Python + mpi4py + numpy.

This course provides scientific training in Computational Science, and in addition, the scientific exchange of the participants among themselves. It is organised by JSC in cooperation with HLRS. 

Contents level

in hours

in %

Beginner's contents:

2 h

10 %

Intermediate contents:

8 h

40 %

Advanced contents:

10.5 h

50 %

Community-targeted contents:

0 h

0 %

Prerequisites:

Unix / C or Fortran / familiar with the principles of MPI, e.g., to the extent of the introductory course MPI and OpenMP, i.e., at least the MPI process model, blocking point-to-point message passing and collective communication, and the single program concept of parallelising applications, and for the afternoon session of the last day, to be familiar with OpenMP 3.0.

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). Please note that the course organisers 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.

In addition, you can perform most MPI exercises in Python with mpi4py + numpy. In this case, an appropriate installation on your system is required (together with a C/C++ or Fortran installation for the other exercises).

Please
tar -xvzf TEST.tar.gz
using https://fs.hlrs.de/projects/par/events/TEST.tar.gz or
unzip TEST.zip using https://fs.hlrs.de/projects/par/events/TEST.zip
and verify your MPI and OpenMP installation with the tests described in TEST/README.txt within the archive.

The exercise about race-condition detection (at the end of the course) is optional. It would require an installation of a race condition detection tool, e.g., the Intel Inspector (available until 2024) together with the Intel compiler, or Intel compilers 2024 or 2025 which include the ThreadSanitizer, or both. It is recommended to install it.

Slides and exercises:

A few days before the course starts, you will receive pdf files from the slides and tar/zip files for installing the exercises on your system.

Target audience:

Supercomputer users who want to optimise their programs with MPI or OpenMP and already have experience in parallel programming

Agenda

A detailed program can be found here (preliminary)

Language:

This course is given in English.

Duration:

4 days

Dates:

1-3 December 2025, 8:45-16:45
4 December 2025, 8:45-16:15

Venue:

Online

Number of Participants:

Maximum 40

Instructor:

Rolf Rabenseifner, HLRS

Contact / Course organiser:

  • Jülich Supercomputing Centre (JSC)
Building 16.3 /
Room R 322
+49 2461/61-96742
E-Mail

Registration:

Please register here for the course: https://indico3-jsc.fz-juelich.de/event/255/registrations/190/

Last Modified: 03.09.2025