Message Passing Interface (MPI) is a specification for an API that allows many computers to communicate with one another. The MPI standard includes point-to-point message-passing, collective communications, group and communicator concepts, process topologies, environmental management, process creation and management, one-sided communications, extended collective operations, external interfaces, I/O, some miscellaneous topics, and a profiling interface. Language bindings for C, C++ and Fortran are defined. OpenMPI and MPICH2 are two popular free MPI implementations.

Note: At DSC, we currently support OpenMPI and MPICH2 on owner-based clusters only.

OpenMPI

The Open MPI Project is an open source MPI-2 implementation that is developed and maintained by a consortium of academic, research, and industry partners. Open MPI is a project combining technologies and resources from several other projects (LAM/MPI, FT-MPI, LA-MPI, and PACX-MPI) in order to build the best MPI library available. OpenMPI programs must be compiled and linked with the appropriate MPI compiler. The user creates a special environment for jobs to run in.

MPICH2

MPICH2 is a freely available, portable implementation of MPI, the Standard for message-passing libraries. It implements both MPI-1 and MPI-2. MPICH2 is supposed to be a compatible replacement for any MPICH version 1 implementation. MPICH2 requires users to build and link against the set of provided routines then run in a special environment. See the MPICH2 documentation for additional specifications.