HP-MPI User's Guide (11th Edition)

Introduction
MPI concepts
Chapter 14
MPI concepts
The primary goals of MPI are efficient communication and portability.
Although several message-passing libraries exist on different systems,
MPI is popular for the following reasons:
Support for full asynchronous communication—Process
communication can overlap process computation.
Group membership—Processes may be grouped based on context.
Synchronization variables that protect process messaging—When
sending and receiving messages, synchronization is enforced by
source and destination information, message labeling, and context
information.
Portability—All implementations are based on a published standard
that specifies the semantics for usage.
An MPI program consists of a set of processes and a logical
communication medium connecting those processes. An MPI process
cannot directly access memory in another MPI process. Inter-process
communication requires calling MPI routines in both processes. MPI
defines a library of routines through which MPI processes communicate.
The MPI library routines provide a set of functions that support
Point-to-point communications
Collective operations
Process groups
Communication contexts
Process topologies
Datatype manipulation.
Although the MPI library contains a large number of routines, you can
design a large number of applications by using the six routines listed in
Table 1-1.