Parallel Programming with MPI

Peter Pacheco

Parallel Programming with MPI is an elementary introduction to programming 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 to MPI.

Table of Contents.


Information on obtaining a copy of the book can be obtained from Morgan Kaufmann Publishers Inc.

You 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 several freely available implementations of MPI that run on a variety of platforms:
  • The MPICH implementation runs on a wide range of platforms and operating systems including Unix and Windows.
  • The OpenMPI implementation runs on a variety of systems.
  • The LAM implementation runs on networks of Unix/Posix workstations.
  • More about MPI

    Further information on MPI is available from a variety of sources. The MPI 1.1 Standard is available in postscript, compressed postscript, PDF, and html.

    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.

    The 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 MPI newsgroup.

    There are also several other books devoted entirely or partially to MPI:

  • Using MPI by William Gropp, Ewing Lusk and Anthony Skjellum.
  • MPI: The Complete Reference by Marc Snir, Steve Otto, Steven Huss-Lederman, David Walker, and Jack Dongarra. The first edition is also available in html.
  • Designing and Building Parallel Programs by Ian Foster.
  • MPI-2

    The MPI-2 documents are available from the MPI Forum website. These documents are available in postscript, compressed postscript and html. 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 MPI-2 Report has bindings for C++, although these are now deprecated.

    Romanian Translation of this Page:
    Although I cannot vouch for its accuracy, Aleksandra Seremina has kindly prepared a translation of this page into Romanian.

    In order to contact Peter Pacheco, send email to user: peter, domain: Last updated January 19, 2012