SLIDES
These links will always point to the newest version of the slides.
MPI course: mpi_3.1_rab.pdf (PDF) or MPI course: mpi_3.1_rab-animated.pdf (PDF)
Additional slides:
MPI_2025-04_intro+addons.pdf (cb)
MPI I/O slides (cb)
Best practice slides (cb)
STANDARD DOCUMENT
MPI: A Message-Passing Interface Standard Version 5.0 (PDF)
MPI4PY DOCUMENTATION
MPI4PY: https://mpi4py.readthedocs.io
EXERCISES
Hands-on labs are prepared for the course participants on the ASC JupyterHub.
Outside of the course or if you prefer to use your own laptop or system to do the hands-on labs during the course, you'll need either Python + numpy + mpi4py or a C, C++, or Fortran compiler and an up-to-date MPI library, e.g., open-mpi or mpich, as well as a proper Jupyter environment if you want to run the Jupyter Notebooks locally.
The ASC exercise material (Jupyter Notebooks based on the HLRS course) is available from the:
ASC MPI GIT REPO git clone https://gitlab.tuwien.ac.at/vsc-public/training/MPI
The HLRS exercise material can be downloaded from: (To verify your MPI library/installation please download either TEST.tar.gz or TEST.zip and do the tests described in the upper part at "A) Testing MPI" in the file TEST/README.txt within the archive.)
MPI31single.tar.gz or MPI31single.zip
ACKNOWLEDGMENTS & COPYRIGHT
The ASC MPI course is based on the MPI course developed by Rolf Rabenseifner, HLRS at the University of Stuttgart,
the copyrighted material is used with permission.
The HLRS material (slides and exercises) is copyrighted by the HLRS at the University of Stuttgart. You may download the slides and exercises for your personal use and pass on the link above. Any other form of public distribution of the provided pdf files themselves or any derived material is not allowed, except with written permission by HLRS; in this case, please contact training(at)hlrs.de to request such a permission.
The ASC exercise material (Jupyter Notebooks based on the HLRS course) is available under a CC BY-SA 4.0 license.
FEEDBACK
Please provide your feedback (at the end of the course) here:
https://events.asc.ac.at/event/213/surveys/217
Students, in addition, please provide your evaluation for the lecture VSC-School I:
https://tiss.tuwien.ac.at/survey/surveyForm.xhtml?courseNumber=057020&semesterCode=2025W
AGENDA + SLIDE NUMBERS - almost all exercises will be done in Jupyter Notebooks
1st day – 17 November 2025 – Monday
| 08:45 | Join in |
| 09:00 | Welcome |
| 09:05 | MPI overview (slides 9-51) --> Excercise 1 (slide 17, @slide), Exercise 2 (slide 37, @slides+demo), Quiz 1 (slide 51, see Sol.) |
| 10:30 | Break / breakout rooms (meet your exercise group) + break |
| 10:45 | Process model and language bindings (slides 53-74) --> Exercise 1 (slide 63, 5 min+demos), Excercise 2 (slide 70, 5 min+demos) --> if you are fast, think about Exercise 3 (slide 72, discussion) --> if there is still some time left, try the version tests provided in Exercise 4 (slides 73-74) |
| 12:00 | Break |
| 12:15 | Messages and point-to-point communication (slides 77-102) --> BR (35 min): Exercise 1+2 (slides 86-88) + (Advanced Exercise 2b (slide 90, only if time)) --> BR (10 min): Exercise 3+4+(5 advanced) (slides 98-101), Quiz 3 (slide 102, see Sol.) |
| 13:30 | End of first day |
| HOMEWORK 1 - see 02_pingpong.ipynb "5. finish - who wins the race?" please insert your values in the ping pong leader board HOMEWORK 2 - see slide 52 and do it in a terminal in ~/MPI_HLRS/tasks/... |
2nd day – 18 November 2025 – Tuesday
| 08:45 | Join in |
| 09:00 | Ping pong benchmark – solution and results (discussion) |
09:10
| Nonblocking communication (slides 105-137) --> BR (30 min): Exercise 2+(3 advanced) (slides 131-134), Quiz 4 A+B (slides 135-136, see Sol.) + (Quiz 4 C (slide 137, see Sol.)) |
| 10:30 | Break |
| 10:45 | Collective communication (slides 161-185 +187 +189) --> Exercise 1 (slide 169, demo) + (Advanced Exercise 1b (slide 171, optional homework)) --> BR (20 min): Exercise 2 (slide 182) + (Advanced Exercises 1. only (slide 184)), Quiz 6(1) (slide 185, see Sol.) |
| 12:00 | Break |
| 12:15 | Optimizing MPI communication – a real world example (discussion) |
| 12:30 | |
| 13:00 | Fortran and MPI – only for Fortran participants (slides 141-158 +129-130, +56) |
| 13:30 | End of second day |
3rd day – 19 November 2025 – Wednesday
| 08:45 | Join in |
| 09:00 | Groups & communicators (slides 209-221) --> BR (30 min): Exercise 1 (slide 218) + (Exercise 2 advanced (slide 220, only if time)), Quiz 8(1) (slide 221), see Sol.) |
| 10:00 | Break |
| 10:15 | Virtual topologies (slides 241-269 + 274, 279-281 + 286) --> BR (20 min): Exercise 1 (slides 252-253) + Advanced Exercise 1 b (slide 255, if time/later) --> BR (30 min): Exercise 2 (slides 264-265) + Exercises 3+4 advanced (slides 267-268), Quiz 9(1) (slide 269, see Sol.) + Exercises 5+6 advanced (slides 280-281) |
| 12:00 | Break |
| 12:15 | Derived datatypes (slides 425-449) --> Exercise 1 (slides 432-433, demo) --> BR (30 min): Exercise 2 (slides 445-446) (Advanced: Exercise 1 b (slide 435), Exercises 3+4 (slide 448) Quiz 12(1) (slide 449, see Sol.) |
| 13:30 | End of third day |
| HOMEWORK 3 - heat example see slides 597-642 and do it in a terminal in ~/MPI_HLRS/tasks/.../heat/ |
4th day – 20 November 2025 – Thursday
| 08:45 | Join in |
| 09:00 | One-sided communication (slides 321-360) --> BR (20 min): Exercise 1 (slides 337-339) --> BR (30 min): Exercises 2 (slides 355-357) + Advanced Exercise 3 (slide 359) Quiz 10 (slide 360, see Sol.) |
| 10:30 | Break |
| 10:45 | Shared memory one-sided communication (slides 361-381 + 400) --> BR (20 min): Exercise 1 (slides 368-370) --> BR (15 min): Exercise 2 (slides 380-381) Quiz 11(1) (slide 400, see Sol.) |
| 12:00 | Break |
| 12:15 | Short tour: other MPI topics |
| 12:30 | Short tour: MPI I/O |
| 13:00 | Best practice, Summary, Q&A |
| 13:30 | End of fourth day (course) |