Target Audience:
This course is aimed at programmers seeking to deepen their understanding of MPI and also explore some of its more recent and advanced features.
The course will run online over two days from 10:00 to 16:00 on 29-30 July 2025. All attendees will be given access to ARCHER2 for practical exercises.
The most recent MPI standard, MPI 5.0 approved on 5th June 2025, runs to over 1000 pages and includes a huge number of functions. Even the most basic of MPI operations, such as a matching pair of MPI_Send / MPI Recv calls, can be implemented in surprisingly complicated ways; a simple question such as “what happens if I post a send and there is no receive” may not have a simple answer! An understanding of how the MPI library is implemented in practice can therefore be useful for users wanting to achieve optimal performance.
To help ensure that we cover the topics that are of most interest to attendees, you will receive a short questionnaire after registration asking to rank your interest in the following topics:
- Interactive (and fun!) quiz on basics of MPI
- History and development of MPI
- How MPI implementation details affect performance
- Advanced collectives: use of derived datatypes and neighbourhood collectives
- MPI Shared Memory Model (MPI equivalent of OpenMP shared arrays)
- General tips and tricks for MPI programming
- Hybrid MPI+OpenMP
- Remote Memory Access (MPI_Put, MPI_Get etc)
- Parallel IO with MPI-IO
- Techniques for overlapping communication and calculation
and we will try and cover the most popular topics.
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:
To follow