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.
Please be sure to complete this survey after the lesson.
Please input the date as the date you started the materials.
Short(ish) lesson description
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. Derived Data Types |
How do I use complex data structures in MPI?
What is contiguous memory, and why does it matter? |
8. Porting Serial Code to MPI |
What is the best way to write a parallel code?
How do I parallelise my existing serial code? |
9. Optimising MPI Applications | How can we understand how well our code performs as resources increase? |
10. Common Communication Patterns [Optional] | What are some common data communication patterns in MPI? |
11. Advanced Data Communication [Optional] |
How do I communicate structures?
How do I communicate non-contiguous data which isn’t easy to express as a derived data type? |
12. Survey | |
Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.
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.