MPI process model and language bindings

Processes & communicators

MPI programs typically follow the SPMD (Single Program, Multiple Data) programming paradigm, where each process runs the same executable but with different data. In the pure (single-threaded) MPI model, each core on one or several node(s) will execute an MPI process. These processes communicate via explicit message passing over a transparent network such that in general the programmer needs not to care whether the communicating processes are located on the same node or distributed over several nodes. MPI processes are organized in logical sets that define which processes are allowed to communicate with each other. Such a set of processes is known as a communicator. One special communicator that contains all processes is created at the start of an MPI program, this communicator is called MPI_COMM_WORLD.

Prerequisites

  • Distributed system environments

  • Resource management in distributed systems

  • Basic programming skills in either C/C++ or Fortran or Python

  • Introduction to the Message Passing Programming (MPI) Model

Learning outcomes

Objectives

  • Use the MPI process model

  • Compile and execute MPI programs

See also

Credit

These course materials are based on the MPI course developed by Rolf Rabenseifner, HLRS at the University of Stuttgart that is copyrighted by the HLRS at the University of Stuttgart. The copyrighted materials (some images, some exercise descriptions, some code snippets) are used with permission. Some parts taken from the HLRS materials are modified and extended.

Please contact training@asc.ac.at if you want to reuse these course materials in your teaching or if you would like to contribute or found any issues.

License