MPI

Introduction to the Message-Passing Interface

Description

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

Documentation

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

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 http://www.mcs.anl.gov/mpi/www. Additional on-line information is available at http://www.mcs.anl.gov/mpi, including a hypertext version of the standard, information on other libraries that use MPI, and pointers to other MPI resources.

Version

MPICH version 1.1.2

License

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

Files

/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

Contact

For comments regarding the local installation of MPI, please send mail to support@mcs.anl.gov. MPI-specific suggestions and bug reports should be sent directly to mpi-bugs@mcs.anl.gov.

Acknowledgement

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

Location:/home/MPI/mansrc/manpage