|Operating system||Linux, MacOS, others.|
|License||MPICH license (permissive)|
MPICH, formerly known as MPICH2, is a freely available, portable implementation of MPI, a standard for message-passing for distributed-memory applications used in parallel computing. MPICH is Free and open source software with some public domain components that were developed by a US governmental organisation, and is available for most flavours of Unix-like OS (including Linux and Mac OS X).
The Argonne National Laboratory developed early versions (MPICH-1) as public domain software. The CH part of the name was derived from "Chameleon", which was a portable parallel programming library developed by William Gropp, one of the founders of MPICH.
The original implementation of MPICH (sometimes called "MPICH1") implemented the MPI-1.1 standard. Starting around 2001, work began on a new code base to replace the MPICH1 code and support the MPI-2 standard. Until November 2012, this project was known as "MPICH2". As of November 2012, the MPICH2 project renamed itself to simply "MPICH". MPICH v3.0 implements the MPI-3.0 standard.
MPICH is one of the most popular implementations of MPI. It is used as the foundation for the vast majority of MPI implementations, including IBM MPI (for Blue Gene), Intel MPI, Cray MPI, Microsoft MPI, Myricom MPI, OSU MVAPICH/MVAPICH2, and many others.
Based on ch3 infrastructure:
- Nemesis - Universal, has inter-node modules: elan, GM, IB (infiniband), MX (myrinet express), NewMadeleine, tcp; and several intra-node variants of shared memory for large messages (LMT interface).
- ssm - Sockets and Shared Memory
- shm - SHared memory
- sock - tcp/ip sockets
- sctp - experimental channel over SCTP sockets
- IBM (MPI for the Blue Gene series and, as one option, for x- and p-series clusters)
- Cray (MPI for all Cray platforms)
- SiCortex (MPI SiCortex)
- Microsoft (MS-MPI)
- Intel (Intel MPI)
- Qlogic (MPICH2-PSM)
- Myricom (MPICH2-MX)
- Ohio State University (MVAPICH and MVAPICH2)
- University of British Columbia (MPICH2/SCTP, and Fine-Grain MPI (FG-MPI) which adds support for coroutines)