Parallel Programming Guide for HP-UX Systems

Introduction to parallel environments
MPI
Chapter 110
MPI
The message passing model
Programming models are generally categorized by how memory is used. In the shared
memory model each process accesses a shared address space, while in the message passing
model an application runs as a collection of autonomous processes, each with its own local
memory. In the message passing model processes communicate with other processes by
sending and receiving messages. When data is passed in a message, the sending and receiving
processes must work to transfer the data from the local memory of one to the local memory of
the other.
Message passing is used widely on parallel computers with distributed memory, and on
clusters of servers. The advantages of using message passing include:
Portability—Message passing is implemented on most parallel platforms.
Universality—Model makes minimal assumptions about underlying parallel hardware.
Message-passing libraries exist on computers linked by networks and on shared and
distributed memory multiprocessors.
Simplicity—Model supports explicit control of memory references for easier debugging.
However, creating message-passing applications may require more effort than letting a
parallelizing compiler produce parallel applications.
In 1994, representatives from the computer industry, government labs, and academe
developed a standard specification for interfaces to a library of message-passing routines.
This standard is known as MPI 1.0 (MPI: A Message-Passing Interface Standard). Since this
initial standard, versions 1.1 (June 1995), 1.2 (July 1997), and 2.0 (July 1997) have been
produced. Versions 1.1 and 1.2 correct errors and minor omissions of MPI 1.0. MPI-2 (MPI-2:
Extensions to the Message-Passing Interface) adds new functionality to MPI 1.2. You can find
both standards in HTML format at http://www.mpi-forum.org.
MPI-1 compliance means compliance with MPI 1.2. MPI-2 compliance means compliance with
MPI 2.0. Forward compatibility is preserved in the standard. That is, a valid MPI 1.0 program
is a valid MPI 1.2 program and a valid MPI-2 program.