MPICH

MPICH（以前はMPICH2と呼ばれていた）は、自由に利用可能なポータブルなMPI実装である。MPIとは、並列計算で使われる分散メモリアプリケーションのためのメッセージパッシングの標準の一つである。MPICHは、アメリカ合衆国の政府機関によって開発されたパブリックドメインのコンポーネントを含む、フリーでオープンソースのソフトウェアであるMPICH License。LinuxとmacOSを含むUnix系OSのほとんどで使用できる。

 歴史 
アルゴンヌ国立研究所がパブリックドメインソフトウェアとして初期のバージョン（MPICH-1）を開発した。名前のCHの部分は、MPICHの初期開発メンバーの一人であるビル・グロップが開発した、ポータブルな並列プログラミングライブラリ「Chameleon」に由来する。

MPICHの初期の実装（「MPICH1」と呼ばれることもある）はMPI-1.1標準を実装している。2001年頃から、MPICH1を置き換える新しいコードベースが開発され始め、MPI-2標準をサポートするようになった。2012年11月まで、このプロジェクトは「MPICH2」と呼ばれていた。2012年11月、MPICH2プロジェクトは単なる「MPICH」に名称変更された。MPICH v3.0実装は、MPI-3.0標準を実装している。

MPICHは、最も人気のあるMPI実装の1つであり、非常に多くのMPI実装の基礎となっている。MPICHがベースとなっている実装としては、IBM MPI（for Blue Gene）、Intel MPI、Cray MPI、Microsoft MPI、Myricom MPI、OSU MVAPICH/MVAPICH2など、多数の実装がある。

 MPICH channels 
ch3インフラストラクチャが基礎となっている。

 Nemesis - 様々な用途に使用できる汎用のチャンネル。inter-nodeモジュール（elan、GM、IB（infiniband）、MX（myrinet express）、NewMadeleine、tcp）と、大きなメッセージ送信のための共有メモリのいくつかのintra-nodeモジュール（LMTインターフェイス）がある。
 ssm - ソケットと共有メモリ（Sockets and Shared Memory）
 shm - 共有メモリ（SHared memory）
 sock - tcp/ip ソケット
 sctp - SCTPソケット上の実験チャンネル

 MPICHの派生プログラム 
 IBM（Blue Geneシリーズと、オプションで利用できるx-およびp-シリーズクラスタのためのMPI）
 Cray（CrayプラットフォームのためのMPI）
 SiCortex（MPI SiCortex）
 Microsoft（MS-MPI）
 Intel（Intel MPI）
 Qlogic（MPICH2-PSM）
 Myricom（MPICH2-MX）
 オハイオ州立大学（MVAPICHおよびMVAPICH2）
 ブリティッシュコロンビア大学（MPICH2/SCTPhttp://www.cels.anl.gov/events/conferences/SC07/presentations/mpich2-flyer.pdf.およびコルーチンをサポートしたFine-Grain MPI（FG-MPI）https://www.cs.ubc.ca/~humaira/fgmpi.html）

 参考文献 

 関連項目 
 Open MPI - もう1つの有名なオープンソースのMPI実装
 MVAPICH

 外部リンク 
MPICHウェブサイト
MPIの標準ドキュメント

Category:自由ソフトウェア文化・運動
Category:オープンソースソフトウェア
Category:並列コンピューティング
Category:Cでプログラムされた自由ソフトウェア
Category:パブリックドメインソフトウェア