next previous contents
Next: Getting Started With MPI Previous: Contents


MPI, the Message Passing Interface, is a library, and a software standard developed by the MPI Forum to make use of the most attractive features of existing message passing systems for parallel programming. Important contributions have come from the IBM T. J. Watson Research Center, Intel's NX/2, Express, nCUBE's Vertex, p4, PARMACS, Zipcode, Chimp, PVM, Chameleon, and PICL.

An MPI process consists of a C or Fortran 77 program which communicates with other MPI processes by calling MPI routines. The MPI routines provide the programmer with a consistent interface across a wide variety of different platforms. The MPI specification is based on a message passing model of computation where processes communicate and coordinate by sending and receiving messages. These messages can be of any size, up to the physical memory limit of the machine. MPI provides a variety of message passing options, offering maximal flexibility in message passing.

MPI is a specification (like C or Fortran) and there are a number of implementations. This guide describes the basic use of the MPICH implementation of MPI. Other implementations include LAM and CHIMP versions of MPI. These implementations are freely available by anonymous ftp:

  1. MPICH - in the directory pub/mpi/mpich, file mpich.tar.Z
  2. LAM - in the directory pub/lam
  3. CHIMP - in the directory pub/chimp/release

The MPICH implementation is a library of several hundred C and Fortran routines that will let you write programs that run in parallel and communicate with each other. Few completely understand all that any MPI implementation offers, but that's okay, because this class will only be using some ten (maybe a few more) routines out of the bunches available.

This guide is designed to give the user a brief overview of some of the basic and important routines of MPICH with emphasis on getting up and running on the DEC Alphas within the CS department at Appalachian State University. The DEC Alphas to be used in this class include the following machines located on the cs network: rich, mitchell, grandfather, howard, sugar, roan, beech, bald, and cs.

This guide is not meant to be a replacement for the official manual or user's guide. The official man pages can be found here. The user's guide can be found here.
If you have some time, the MPI Standard and the MPI FAQ are available.