back to: parallel programming languages

2.a Message Passing Interface (MPI)

MPI is a message passing API standard created by a "broadly based comittee" of vendors and users called the MPI Forum. The MPI standard has language bindings for C, C++, and Fortran.1

Most MPI programs applications have a fixed set of processes initialized at startup, with one process per processor. MPI provides basic point to point send and receive operations (both synchronous and asynchronous). It also provides a mechanism for a group of processes to call a collective operation, such as summation, synchronization, and broadcasting.2

Although MPI is a large library of over 100 functions, one can be quickly productive using less than 10 f these functions. Currently, the use of MPI is the most popular method of creating parallel applications.

While MPI is becoming the de facto standard for parallel programming, there are many reasons to look at other approaches to parallel programming.


1 MPI Home Page at http://http://www-unix.mcs.anl.gov/mpi/
2 Ian Foster, Designing and Building Parallel Programs, http://www-unix.mcs.anl.gov/dbpp/