Introduction to the Message-Passing Interface


MPI stands for Message Passing Interface. The goal of MPI, 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.

In designing MPI the MPI Forum sought to make use of the most attractive features of a number of existing message passing systems, rather than selecting one of them and adopting it as the standard. Thus, MPI has been strongly influenced by work at the IBM T. J. Watson Research Center, Intels NX/2, Express, nCUBEs Vertex, p4, and PARMACS. Other important contributions have come from Zipcode, Chimp, PVM, Chameleon, and PICL.

MPI is a specification (like C or Fortran) and there are a number of implementations. The rest of this man page describes the use of the MPICH implementation of MPI.

Getting started

Add MPI to your path

        % set path = ( $path /usr/local/mpi/bin )
Compute pi to a given resolution on 8 processors or threads
        % mpirun -np 8 /usr/local/mpi/examples/basic/fpi
Try 10000 intervals at the prompt. Fortran source is available in this directory, along with a similar C program (cpi.c).

A coarse timing program is also available here

        % mpirun -np 8 /usr/local/mpi/examples/basic/systest
More sophisticated timing programs may be found in the source for the MPICH implementation of MPI (/home/MPI/mpich/examples/perftest).

You can compile and link your own MPI programs with the commands mpicc and mpif77.

        % mpicc -o cpi cpi.c
        % mpif77 -o fpi fpi.f


Postscript documentation can be found in directory /usr/local/mpi/doc/. These include an introductory guide ( and a user manual (

Man pages exist for every MPI subroutine and function. The command mpiman will start an xman for the MPI manual pages. The man pages are also available on the Web at Additional on-line information is available at, including a hypertext version of the standard, information on other libraries that use MPI, and pointers to other MPI resources.


MPICH version 1.1.2


Copyright 1993-1998 University of Chicago and Mississippi State University. See COPYRIGHT for details. The source code is freely available by anonymous ftp from in pub/mpi/mpich.tar.gz .


/usr/local/mpi/                 MPI software directory
/usr/local/mpi/COPYRIGHT        Copyright notice
/usr/local/mpi/README           various notes and instructions
/usr/local/mpi/bin/             binaries, including mpirun
/usr/local/mpi/examples/basic   elementary MPI programs
/usr/local/mpi/doc/             documentation
/usr/local/mpi/include/         include files
/usr/local/mpi/lib/             library files


For comments regarding the local installation of MPI, please send mail to MPI-specific suggestions and bug reports should be sent directly to


Thanks to Richard Frost for suggesting this page and providing a sample.