The Message Passing Interface (MPI) has become the application programming interface (API) of choice for data exchange among processes in parallel scientific programs. While Parallel Virtual Machine (PVM) is still a viable message passing system offering features not available in MPI, it’s often not the first choice for developers seeking vendor-supported APIs based on open standards. Of course, standards evolve, and the MPI standard is no different.
The Message Passing Interface (MPI) has become the application programming interface (API) of choice for data exchange among processes in parallel scientific programs. While Parallel Virtual Machine (PVM) is still a viable message passing system offering features not available in MPI, it’s often not the first choice for developers seeking vendor-supported APIs based on open standards. Of course, standards evolve, and the MPI standard is no different.
The evolving series of MPI standards, available on the web at http://www.mpi-forum.org, describe the features of the programming interface and serve as guidelines for those developing MPI implementations for various computer platforms. The MPI-1.0 standard was produced way back in May 1994, and the MPI-1.1 standard was released in June 1995. Within a few years, the MPI-1.2 standard and the MPI-2 standard were produced. The MPI-1.2 standard consists primarily of clarifications and corrections to MPI-1.1 and one new routine. Forward compatibility is preserved so that a valid MPI-1.1 program is both a valid MPI-1.2 program and a valid MPI-2 program.
Most MPI implementations in common use — including the two most popular ones for Linux clusters, called MPICH and LAM/MPI — comply with the MPI-1.2 standards. LAM/MPI and a new version of MPICH available in beta, called MPICH2, already support many of the features new to MPI-2. The most important MPI-2 features include process creation and management; one-sided communications; collective operations on intercommunicators; external interfaces to error handlers, data types, and requests; parallel input/output (also known as MPI-IO); bindings…
Please log in to view this content.
Not Yet a Member?
Register with LinuxMagazine.com and get free access to the entire archive, including: