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 topics including exploiting shared-memory access from MPI programs, communicator management and neighbourhood collectives. We also look at performance aspects such as which MPI routines to use for scalability, MPI internal implementation issues and overlapping communication and calculation.

Intended learning outcomes


Attendees should be familiar with MPI programming in C, C++ or Fortran, e.g. have attended the ARCHER2 MPI course.


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.


This is a two day coures, running on Wednesday 14th and Friday 16th July (two separate days); 09:30 to 17:00 each day

Course materials


Day 1

Session 1

Session 2

Session 3

Session 4

Day 2

Session 1

Session 2

Session 3


This course is part-funded by the PRACE PRACE project and is free to all.