Introduction to the Message Passing Interface

Self-learning course

Site Updated On: May 29, 2024
For More Info Email: rsginfo@soton.ac.uk
Introduction to the Message Passing Interface

General Information

Requirements: Participants must have access to a computer with a Mac, Linux, or Windows operating system (not a tablet, Chromebook, etc.) that they have administrative privileges on. They should have a few specific software packages installed (listed below).

Accessibility:

We are dedicated to providing a positive and accessible learning environment for all. Please get in touch you require any accommodations or if there is anything we can do to make this lesson more accessible to you.

Contact: Please email or rsginfo@soton.ac.uk for more information.


Surveys

Please be sure to complete this survey after the lesson.

Please input the date as the date you started the materials.

Post-Lesson Survey


Lesson Outline

Short(ish) lesson description


Schedule

1. Introduction to Parallelism What is parallelisation and parallel programming?
How do MPI and OpenMP differ?
Which parts of a program are amenable to parallelisation?
How do we characterise the classes of problems to which parallelism can be applied?
How should I approach parallelising my program?
2. Introduction to the Message Passing Interface What is MPI?
How to run a code with MPI?
3. Communicating Data in MPI How do I exchange data between MPI ranks?
4. Point-to-Point Communication How do I send data between processes?
5. Collective Communication How do I get data to more than one rank?
6. Non-blocking Communication What are the advantages of non-blocking communication?
How do I use non-blocking communication?
7. Advanced Communication Techniques How do I use complex data structures in MPI?
What is contiguous memory, and why does it matter?
8. Common Communication Patterns What are some common data communication patterns in MPI?
9. Porting Serial Code to MPI What is the best way to write a parallel code?
How do I parallelise my existing serial code?
10. Optimising MPI Applications How can we understand how well our code performs as resources increase?
11. Survey
Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.


Setup

To participate in this lesson, you will need access to software as described below. In addition, you will need an up-to-date web browser.

The instructions for all the software can be found on the setup page.