This course is aimed at programmers seeking to deepen their understanding of MPI and explore some of its more recent and advanced features. We cover functionality including exploiting shared-memory access from MPI programs and advanced use of collectives. We also look at performance aspects such as MPI internal implementation issues and which MPI point-to-point routines to use for scalability.
Intended learning outcomes:
- Understanding of how internal MPI implementation details affect performance
- Advanced use of collectives via derived datatypes
- Using the MPI shared-memory model to optimise per-node memory usage
Prerequisites:
Attendees should be familiar with MPI programming in C, C++ or Fortran, e.g. have attended the ARCHER2 MPI course.
Requirements:
Participants must bring a laptop with a Mac, Linux, or Windows operating system (not a tablet, Chromebook, etc.) that they have administrative privileges on.
They are also required to abide by the ARCHER2 Code of Conduct.
Timetable:
- 10:00 - 10:15 ARCHER2 training
- 10:15 - 11:00 MPI Internals
- 11:00 - 11:15 Practical: Point-to-point performance
- 11:15 - 11:30 Coffee Break
- 11:30 - 11:45 Practical: Point-to-point performance (continued)
- 11:45 - 12:30 MPI Optimisations
- 12:30 - 13:00 Practical: Halo Swapping / Eager Limits
- 13:00 - 14:00 Lunch
- 14:00 - 14:30 Advanced Collectives
- 14:30 - 15:00 Worked Example: Advanced Collectives
- 15:00 - 15:30 New MPI shared-memory model
- 15:30 - 16:00 Worked Example: Shared Memory in MPI
- 16:00 CLOSE