Math 6395 -- Introduction to Parallel Scientific Computing

Message Passing Interface (MPI)


[back to top]

[adapted from the MPI-2.1 Interface Standard (link below)]

MPI (Message-Passing Interface) is a message-passing library interface specification. All parts of this definition are significant. MPI addresses primarily the message-passing parallel programming model, in which data is moved from the address space of one process to that of another process through cooperative operations on each process. MPI is a specification, not an implementation, and as such there are a multitude of implementations of MPI. This specification is for a library interface. In addition, MPI is not a programming language, so all MPI operations are expressed as functions, subroutines, or methods, according to the appropriate language bindings, which for C, C++, Fortran-77, and Fortran-90/95, are part of the MPI standard. This standard has been defined through an open process by a community of parallel computing vendors, computer scientists, and application developers.

The main advantages of establishing a message-passing standard are portability and ease of use. In a distributed memory communication environment in which the higher level routines and/or abstractions are built upon lower level message-passing routines the benefits of standardization are particularly apparent. Furthermore, the definition of a message-passing standard, such as that proposed here, provides vendors with a clearly defined base set of routines that they can implement efficiently, or in some cases provide hardware support for, thereby enhancing scalability.

The goal of the Message-Passing Interface simply stated is to develop a widely used standard for writing message-passing programs. As such the interface should establish a practical, portable, efficient, and flexible standard for message passing.


As mentioned in the syllabus, I recommend the book Using MPI -- 2nd Edition: Portable Parallel Programming with the Message Passing Interface, by William Gropp, Ewing Lusk and Anthony Skjellum, MIT Press, 1999. For those students who prefer electronic reference materials (or do not wish to spend money on books), I provide the following links.

MPI Links: