Advanced Parallel Programming
Description
Description
This course addresses hybrid programming by combining OpenMP and MPI, as well as more advanced topics in MPI (communication topologies, user-defined data type, and one-side-communications). Also, parallel I/O is discussed and exemplified in the course. The course consists of lectures and hands-on exercises on Puhti. The participants will be informed on connections details before the course.
Learning outcome
After the course the participants should be able to know how to combine MPI and OpenMP programming models to use full nodes efficiently, how to define its own sub-communicators in order to take advantage of network topology or special data patterns, define its own custom datatypes, and know how to efficiently save data in parallel using MPI-IO or HDF5, as well as understand the basics of the one-sided MPI communication.
Prerequisites and content level
In order to take the course the participant should be fluent in FORTRAN and/or C programming languages and have taken the PTC course Introduction to Parallel Computing or have similar background knowledge of MPI and OpenMP.
The content level of the course is broken down as: beginner's - 14%, intermediate - 51%, advanced - 35%, community-targeted content - 0%.
Agenda
Day 1, Wednesday March 10
-
09.00-09.45 Course intro, MPI & OpenMP recap
-
9:45 -9:50 Break
-
09:50-10.20 Hybrid MPI + OpenMP programming I
-
10.20-12.00 Exercises (offline)
-
12:00 - 13:00 Lunch time recommended
-
13.00-13.30 Exercises (offline)
-
13.30-14.15 Hybrid MPI + OpenMP programming II
-
14.15-15.30 Exercises (offline)
-
15.30-16.00 Q&A session
Day 2, Thursday March 11
-
09.00-09.45 Advanced MPI I: User-defined datatypes
-
9:45 -9:50 Break
-
09:50-10.20 Advanced MPI II: Communication topologies
-
10.20-12.00 Exercises (offline)
-
12:00 - 13:00 Lunch time recommended
-
13.00-13.30 Exercises (offline)
-
13.30-14.15 Advanced MPI III: One-sided communication
-
14.15-15.30 Exercises (offline)
-
15.30-16.00 Q&A session
Day 3, Friday March 12
-
09.00-09.30 Parallel I/O I: Simple POSIX with MPI
-
9:30 -9:35 Break
-
09:35-11.00 Parallel I/O II: MPI-IO
-
11.00-12.00 Exercises (offline)
-
12:00 - 13:00 Lunch time recommended
-
13.00-14.30 Exercises (offline)
-
14.30-15.00 Parallel I/O III: with HDF5
-
15.00-15.30 Exercises (offline)
-
15.30-16.00 Q&A session