Introduction to MPI
Are you interested in distributed memory programming? Are you ready to go beyond using a single node?
Any given node has limited resources, whether memory or compute. Being able to scale beyond a single node enables you to leverage more resources, and make use of distributed memory architectures, such as supercomputers.
You can join in-person OR virtually. This is a free workshop. Please register only if you plan to attend.
Please join at 8:30am (AWST) to ensure you can access the system. The class starts promptly at 9:00am (AWST).
What will I learn in this 3-hour, hands-on workshop?
This workshop is a gentle introduction to MPI:
- create a program that can run simultaneously on multiple nodes.
- make multiple processes communicate.
- coordinate these processes to ensure correctness.
- leverage optimised communications for known patterns.
- overlap computation and communications.
How about a more technical look at the agenda?
- How it works (the SPMD paradigm)
- Starting / ending an MPI program (MPI_Init / MPI_Finalize)
- Sending / receiving messages (MPI_Send / MPI_Recv)
- Synchronous / asynchronous sends (MPI_[BSR]send)
- Explicit Synchronisation (MPI_Barrier)
- Collective operations (MPI_Bcast / MPI_Reduce / MPI_Scatter / MPI_Gather)
- Non-blocking operations (MPI_I[s|b|r]send / MPI_Irecv / MPI_Wait[|some|all] / MPI_Test[|some|all] | MPI_Ibarrier)
Pre-requisites:
- You must be familiar with at least one of the following languages:
- C/C++ (Refresher videos) or
- Fortran
- You do not need to have taken the OpenMP workshops, which will be held on 8 December. Please register for these OpenMP workshops if you are interested.
Meet your Trainer!
Dr. Ludovic Capelli is a teaching fellow at EPCC, the High-Performance Institute of the University of Edinburgh, UK. His efforts are exclusively dedicated to the education of HPC, being part of the teaching team for both on-campus and online versions of the MSc in HPC and MSc in HPC with Data Science at EPCC. He focusses primarily on two major HPC technologies: OpenMP and MPI, being a member of the OpenMP language committee and the MPI forum, as well as the course organiser for the “Advanced Message-Passing Programming” module at EPCC.