Message Passing Interface
MPIはプログラミング言語とは独立の通信プロトコルで、並列計算機上で動くプログラムに使用される。通信はPoint-to-Pointとグループ通信(Collective communication)の両方がサポートされている。MPIは「メッセージパッシングアプリケーションのためのプログラミングインタフェースで、プロトコルとセマンティクスを定義することで、全ての実装においてその機能がどう振る舞うべきかを仕様として定めている」MPIのゴールはハイパフォーマンス、スケーラビリティ、移植性である。MPIは現在でもハイパフォーマンスコンピューティングにおいてはよく用いられる手法である。
MPIは有名な標準の承認を得た規格ではない。しかしMPIは分散メモリ上で動作する並列計算プログラムのプロセス間通信のモデルとしてはデファクトスタンダードとなっている。実際に、コンピュータークラスターのような構成の分散メモリ型スーパーコンピューター用のプログラムではMPIはよく採用される。MPI-1のモデルは共有メモリを一切必要とせず、MPI-2は限定的に分散共有メモリの概念を導入している。にもかかわらず、MPIのプログラムは共有メモリ型の計算機で使用されることもよくある。これは共有メモリ型のプログラミングのモデルに対して、MPI型のモデルの設計の方がNUMAアーキテクチャーのシステムではメモリアクセスの局所性(参照の局所性)などの点で適しているためである。
MPIはOSI参照モデルの役割にあてはめると、役割としては5層(セッション層)以上に対応すると考えられるが、実際の実装ではソケットとTCP(トランスポート層)を使用しているため、より広い範囲(4 - 7層)をカバーしている。