Parallel Programming with MPI
Parallel Programming with MPI is an elementary introduction
parallel systems that use the MPI 1 library of extensions to C and
Fortran. It is intended for use by students and professionals with
some knowledge of programming conventional, single-processor systems,
but who have little or no experience programming multiprocessor systems.
It is an extensive revision and expansion of
A User's Guide
Table of Contents.
Information on obtaining a copy of the book can be obtained from
can download source code for all the programs in the book. The
code is available
in either C (updated 2000/01/23) or
Fortran (updated 2000/08/23).
These files were created using the Unix utilities tar and
compress. If you're having trouble unpacking them, you can
find some help here.
Errata (updated 2002/10/16) and
Notes (updated 2008/06/01) will be put online as soon
as they become available.
Implementations of MPI
There are a number of freely available implementations of MPI that run
on a variety of platforms:
More about MPI
Further information on MPI is available from a variety of sources.
The MPI Standard is available in
The MPI Forum website
has links to all of the MPI documents, errata, and archives of
the meetings of the Forum.
There is a web site devoted to MPI at
Argonne National Lab.
Beowulf Web Site and Mailing List
is another good source of information about MPI.
If you have questions about MPI that aren't answered by any of these
websites, you could
try posting your question to the
There are also several other books devoted entirely or
partially to MPI:
The MPI-2 documents are available from the
MPI Forum website.
These documents are available in
There's a companion volume to Using MPI,
Using MPI-2, by William Gropp, Ewing Lusk,
and Rajeev Thakur.
There's also a second volume of
MPI: The Complete Reference, by William Gropp,
Steven Huss-Lederman, Andrew Lumsdaine, Ewing Lusk, Bill Nitzberg,
William Saphir, and Marc Snir. This is devoted to MPI-2.
If you want to use MPI with an object-oriented language, the
Report has bindings for C++, although these are now
Romanian Translation of this Page:
Although I cannot vouch for its accuracy,
has kindly prepared a
of this page into Romanian.
In order to contact Peter Pacheco, send email to
user: peter, domain: usfca.edu.
Last updated January 19, 2012