「Message Passing Interface」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
Yamagu (会話 | 投稿記録)
英語版から翻訳を追加
Yamagu (会話 | 投稿記録)
17行目: 17行目:
これらのミーティングとE-mailでの議論がMPIフォーラムそのものであり、このフォーラムへの参加の権利は
これらのミーティングとE-mailでの議論がMPIフォーラムそのものであり、このフォーラムへの参加の権利は
ハイパフォーマンスコンピューティング関係者の人たち全員に開かれている。
ハイパフォーマンスコンピューティング関係者の人たち全員に開かれている。

この頃MPIに対しては欧米の組織を中心に40の組織から約80人の人々が
関与していた。大手の並列計算のメーカーの多くが参加していたほか、
大学や政府の研究機関や、その他の企業からも研究者が参加していた。

MPIの標準ではコアライブラリのシンタックス(文法)とセマンティクス(手続き的なもの)を
定義することによって、FortranやCで移植可能なメッセージ
パッシングを行うプログラムを幅広い分野で作れるようになっている。

MPIは基本的なルーチン群の仕様を明確に定義して並列計算機のメーカーに対して公開しているので、
彼らはそれに基づいて効率的に実装を進めることができる。その結果、各メーカーは
自社製品のマシンに低レベルのMPI標準に準拠したルーチン群の実装を搭載し、
さらにその上に高次の分散メモリ通信環境のルーチンを乗せることができる。
MPIは単純かつ基本的で移植可能なプログラムを書くことも可能である一方で、
ハイパフォーマンスなメッセージパッシングを先進的な計算機の上で
行うようなプログラミングも可能である。


== 実装 ==
== 実装 ==

2014年11月13日 (木) 04:28時点における版

Message Passing Interface(メッセージ パッシング インターフェース、MPI)とは、 並列コンピューティング利用するための標準化された規格である。実装自体を指すこともある。

複数のCPUが情報をバイト列からなるメッセージとして送受信することで協調動作を行えるようにする。自由に使用できる実装としてはMPICHが有名である。他にも商用ベンダなどによる独自の実装が存在する。

ライブラリレベルでの並列化であるため、言語を問わず利用でき、プログラマが細密なチューニングを行えるというメリットがある一方、利用にあたっては明示的に手続きを記述する必要があり、ロックの対処などもプログラマ側が大きな責任をもたなければならない。

業界団体や研究者らのメンバからなる MPI Forum によって規格が明確に定義されているため、ある環境で作成したプログラムが他の環境でも動作することが期待できる。

歴史

MPIへの取り組みは1991年夏にオーストリアの山荘での、小規模な研究者のグループのディスカッションから始まった。 その議論は、翌1992年4月29-30日のバージニア州ウィリアムズバーグで、分散メモリ環境のためのメッセージパッシング規格の標準化についてのワークショップに引き継がれた。このワークショップでは標準的なメッセージパッシングインタフェースに必須となるであろう基本的な機能について議論され、標準化に向けてワーキンググループが設立された。[ジャック・ドンガラ]、 Rolf Hempel、 Tony Hey、David W. Walkerは1992年11月にドラフトを提案し、これがMPI1となった。1992年11月にはMPIワーキンググループの会議がミネアポリスで行われ、そこで標準化プロセスをより公式な仕組みに乗せることが決められた。 MPIワーキンググループは1993年の最初の9ヶ月間は6週ごとにミーティングを行った。 MPIのドラフトの標準規格は1993年11月のスーパーコンピューティングカンファレンスで発表された。 パブリックコメントの期間を経て、その内容がMPIに反映され、1994年6月にMPI version 1.0がリリースされた。 これらのミーティングとE-mailでの議論がMPIフォーラムそのものであり、このフォーラムへの参加の権利は ハイパフォーマンスコンピューティング関係者の人たち全員に開かれている。

この頃MPIに対しては欧米の組織を中心に40の組織から約80人の人々が 関与していた。大手の並列計算のメーカーの多くが参加していたほか、 大学や政府の研究機関や、その他の企業からも研究者が参加していた。

MPIの標準ではコアライブラリのシンタックス(文法)とセマンティクス(手続き的なもの)を 定義することによって、FortranやCで移植可能なメッセージ パッシングを行うプログラムを幅広い分野で作れるようになっている。

MPIは基本的なルーチン群の仕様を明確に定義して並列計算機のメーカーに対して公開しているので、 彼らはそれに基づいて効率的に実装を進めることができる。その結果、各メーカーは 自社製品のマシンに低レベルのMPI標準に準拠したルーチン群の実装を搭載し、 さらにその上に高次の分散メモリ通信環境のルーチンを乗せることができる。 MPIは単純かつ基本的で移植可能なプログラムを書くことも可能である一方で、 ハイパフォーマンスなメッセージパッシングを先進的な計算機の上で 行うようなプログラミングも可能である。

実装

外部リンク