Introduction to the Message Passing Programming Model and MPI

In this section, we first cover message-passing at a conceptual level, and illustrate the basic concepts using a traffic-modelling thought experiment. We then introduce the very basics of MPI and how to develop real MPI programs on ARCHER2 or Cirrus. This is enough information to write simple “Hello World” programs in MPI, and get to grips with compiling and running your own parallel programs. This block also includes the main MPI Exercise Sheet which we will use for the whole course, although only Exercise 1 is relevant here.


Learning Objectives

After completing this section the student will gain:

  • a thorough understanding of the Message Passing programming model

  • familiarity with the core functions defined by Message Passing Interface (MPI) standard

  • experience implementing, compiling, linking and running simple MPI programs


Message Passing Programming Model

This section discusses the message passing programming model and introduces various communication patterns at conceptual level (see slides).












Traffic Modelling

This subsection covers the traffic modelling thought exercise (lecture slides, exercise, solution).










Introduction to MPI Programming

This subsection introduces MPI programming and several core functions (slides).





Next videos cover running MPI programs on ARCHER2 and Cirrus (slides, ARCHER2 notes, [Cirrus notes]../exercises/Cirrus-MPI-online-cribsheet.pdf)) and the first exercise (exercise slides, code archive).






The next short video shows how to log on to ARCHER2, transfer files, and compile and run parallel programs.



The following short video shows how to log on to Cirrus, transfer files, and compile and run parallel programs.