Message Passing Interface
Message Passing Interface(メッセージ パッシング インターフェース、MPI)とは、並列コンピューティングを利用するための標準化された規格である。実装自体を指すこともある。
複数のCPUが情報をバイト列からなるメッセージとして送受信することで協調動作を行えるようにする。自由に使用できる実装としてはMPICHが有名である。他にも商用ベンダなどによる独自の実装が存在する。
ライブラリレベルでの並列化であるため、言語を問わず利用でき、プログラマが細密なチューニングを行えるというメリットがある一方、利用にあたっては明示的に手続きを記述する必要があり、ロックの対処などもプログラマ側が大きな責任をもたなければならない。
業界団体や研究者らのメンバからなる MPI Forum によって規格が明確に定義されているため、ある環境で作成したプログラムが他の環境でも動作することが期待できる。
以下は "Hello World" プログラムをC言語でMPI対応版として書いたものである。 この例では "hello" メッセージを各プロセッサに送信し、受信したデータを少し改変して結果をメインプロセスに返し、それを画面に表示する。
4 MPI プロセスでプログラムを実行する(mpiexec -n 4 ./a.out)と以下のような結果が得られる: