MPI offers standardization, portability, performance, functionality, and several
high quality implementations.
- Standardization
-
MPI is standardized on many levels.
For example, since the syntax
is standardized, you can rely on your MPI code to execute under any MPI implementation
running on your architecture. Since the functional behavior of MPI calls is standardized
too, you don't have to worry about which implementation of MPI is currently on your
machine; your MPI calls should behave the same regardless of the implementation.
Performance, however, will vary slightly among different implementations.
- Portability
-
In the rapidly changing environment of high performance computing and communication
technology, portability is extremely important.
No one wants to
develop a program that can be run on only one machine, or only poorly on others.
All massively parallel processing (MPP) systems provide some sort of message passing
library specific to their hardware. These provide great performance, but an application
code written specifically for one platform cannot be
easily ported to another.
With MPI, you can write portable programs that still take advantage of the specifications
of the hardware and software provided by vendors.
This
is mostly taken care of by simply using MPI calls, because the implementors have
tuned these calls to the underlying hardware and software environment.
- Performance
-
A number of environments, including PVM, Express, and P4, have attempted to provide
a standardized parallel computing environment. However, none of these attempts has
shown the high performance of MPI. They are not available on our system.
- Richness
-
MPI has more than one quality implementation. These implementations provide asynchronous
communication, efficient message buffer management, efficient groups, and rich functionality.
MPI includes a large set of collective communication operations, virtual topologies,
and different communication modes, and MPI supports libraries and heterogeneous
networks as well.
Implementations currently available include
-
MPI/Pro: Verari Systems (formerly MPI Software Technology, Inc.) implementation
-
IBM MPI: IBM product implementation for the SP and RS/6000 workstation clusters
-
MPICH: Argonne National Lab and Mississippi State University implementation
-
UNIFY: Mississippi State University implementation
-
CHIMP: Edinburgh Parallel Computing Centre implementation
-
LAM: Ohio Supercomputer Center implementation
MPI is available on many massively parallel systems.