Advanced Parallel Programming with MPI and OpenMP

Sep. 1, 2021: Most MPI exercises will (in addition to C and Fortran) also be available for Python+mpi4py+numpy.

The focus is on advanced programming with MPI and OpenMP. The course addresses 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 and OpenMP-4.5 and 5.0, which were developed for the efficient use of current HPC hardware. Topics with MPI 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. Topics with OpenMP are the OpenMP-4.0 extensions, as the vectorization directives, thread affinity and OpenMP places. (The GPU programming with OpenMP-4.0 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. This course provides scientific training in Computational Science, and in addition, the scientific exchange of the participants among themselves. It is organized by JSC in cooperation with HLRS.

Location

Online course
Organizer: JSC Forschungszentrum Jülich, Germany

Start date

Nov 29, 2021
09:00

End date

Dec 01, 2021
17:30

Language

English

Entry level

Advanced

Course subject areas

Parallel Programming

Topics

MPI

OpenMP

Back to list

Prerequisites and content levels

Prerequisites

Unix / C or Fortran / familiar with the principles of MPI, e.g., to the extent of the Introductory course MPI and OpenMP or the first three two days of the Parallel Programming Workshop, i.e., at least the MPI process model, blocking point-to-point message passing and collective communication, and the single program concept of parallelizing 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 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.

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.

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

The exercise about race-condition detection (at the end of the course) is optional. It would requires an installation of a race-condition detection tool, e.g., the Intel Inspector together with the Intel compiler.

Content levels
  • Beginners' level: 4 hours 30 minutes
  • Intermediate level: 9 hours
  • Advanced level: 9 hours

Learn more about course curricula and content levels.

Instructor

Dr. Rolf Rabenseifner (Stuttgart)

Slides and exercises for the online course

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.

An older version of this course with most of the material (including the audio information) can also be viewed in the online Parallel Programming Workshop.

Agenda

A detailed program can be found here (PDF) (preliminary).

Registration information

Registration is closed.

Deadline

for registration is Nov. 14, 2021 (extended deadline).
Late registrations after the deadline are still possible but maybe with reduced quality of the handouts.

Contact

Thomas Breuer, phone 02461 61-96742, t.breuer(at)fz-juelich.de

course-page at JSC

Related training

All training

November 04 - December 06, 2024

Online (flexible)


November 11 - 15, 2024

Hybrid Event - Stuttgart, Germany


December 02 - 05, 2024

Online by JSC


January 13 - 31, 2025

Hybrid Event - Stuttgart, Germany


January 21 - 23, 2025

Hybrid Event - Stuttgart, Germany


February 17 - 21, 2025

Stuttgart, Germany