Training Course: High Performance Programming with MPI, September 30th – October 02nd 2019


Larger computing systems such as clusters are composed of multiple shared memory nodes, connected via network infrastructures such as Infiniband. The predominant programming model used to develop parallel applications for such systems is the Message Passing Interface (MPI) standard. MPI has the advantage of supporting basically all parallel computer architectures except accelerators and is thus often considered to be the most widely used parallel programming paradigm. Over the course of three days, the participants will learn the programming model and API of MPI, and develop basic parallel applications.

This course has been originally developed by Rolf Rabenseifner from the High-Performance Computing-Center Stuttgart (HLRS) and is organized in cooperation with HLRS and the Vienna Scientific Cluster (VSC).


Detailed Agenda and Content

Day 1

08:45 Registration
09:00 Welcome & Introduction (talk)
09:15 A Crash Course in Parallel Hardware (talk)
10:00 Introduction to the Message Passing Interface (MPI) (talk)
10:15 Chapter 1: MPI Overview (talk)
11:00 Coffee Break
11:15 Chapter 2: MPI Process Model (talk + exercise)
12:30 Lunch Break
13:30 Chapter 3: Messages and Point-to-Point Communication (talk + exercise)
14:45 Coffee Break
15:00 Chapter 4: Non-Blocking Communication (talk + exercise)
16:30 Chapter 5: Fortran and MPI (talk, only for Fortran participants)
17:00 End of day 1

Day 2

09:00 Chapter 6: Collective Communication (talk + exercise)
10:15 Coffee Break
10:30 Chapter 8: Groups & Communicators (talk + exercise)
11:45 Chapter 9: Virtual Topologies (talk + exercise)
13:00 Lunch Break
14:00 Chapter 8: Re-Numbering on a Cluster (talk)
14:15 Optimizing MPI Communication: A Real World Example (talk)
15:00 Coffee Break
15:15 Chapter 13: Short Tour: HPC I/O - Parallel File I/O (talk)
15:45 Chapter 7, 14-17: Short Tour: Other MPI Topics (talk)
16:00 The HPC Landscape in Austria (talk)
16:30 End of day 2

Day 3:

09:00 Chapter 10: One-Sided Communication (talk + exercise)
10:45 Coffee Break
11:00 Chapter 11: Shared Memory One-Sided Communication (talk + exercise)
12:30 Lunch Break
13:30 Best Practice for Code Parallelization (talk)
14:30 Coffee Break
15:00 Parallel Programming Models (talk)
15:45 Summary Q/A (talk)
16:00 End of day 3


Basic programming skills in C, C++ or Fortran are required, as well as working knowledge of Linux/Unix commands for compiling and executing programs.


Lukas Einkemmer, Thomas Fahringer, Philipp Gschwandtner



Time and Location:

Monday, September 30th – Wednesday, October 02nd 2019, 09:00 – 17:00

RR 20 (basement of the Architecture Building, "Architekturgebäude")
Technikerstr. 21, Technik Campus (map)
6020 Innsbruck

Registration and Administrative Information:

See webpage of Department of Continuing Education.


The course fee is EUR 300,-.

Handouts / Slides:

Each participant will get a printout of all slides.

Contact Information:

Department of Computer Science
Philipp Gschwandtner, MSc PhD
Technikerstr. 21a
6020 Innsbruck
Tel.: +43 512 507-53233

Training Events of HLRS:

Training Events of VSC:

Nach oben scrollen