|
MPIとは・・・ MPIはMessage-Passing Interfaceの略である。 MPIとは並列処理のためのメッセージ通信インターフェイス。 これを使えば、簡単に複数のマシンでメッセージをやりとりできると言うこと。 別にMPIがなくてもSocket通信ライブラリを使用してマシン間でメッセージを授受し,並列プログラミングを作成することは可能である。だが,MPIは簡単にマシン間でメッセージを授受できるライブラリインタフェースになっており,これによってプログラマは並列計算アルゴリズムの実装に専念することができる。 MPI は様々な通信方式を強力かつ柔軟に支援している反面,そのAPI の複雑さゆえに大きなソフトウェアオーバーヘッドがかかり, MPI の適用範囲を定型的な粗粒度計算に限定する結果となっている。 PVMとは・・・ MPIはインターフェイスの規定であるのに対して、PVMは実装パッケージそのものであ る。PVMは、TCP/IPネットワークで接続された何台ものコンピュータを仮想的に1台 のマシンととらえて、並列プログラムを走らせることのできるメッセージ・パッシン グの環境とライブラリを提供する。 PVMは、ワークステーションをクラスタにすることで再利用するという世界で育ってきたもの。 そのために不均質ないくつものマシンやオペレーティング・システムを直接に管理する。 そしてダイナミックに仮想マシンを形成することができる。 PVMのプロセス管理の機能では、アプリケーションの中から動的にプロセスを生成したり、停 止したりすることができる。 PVMの利用における最大の問題点は、移植性である。 それに対してMPIは、その実装がMPP(Massively Parallel Processors)やほとんど同一な特定のワークステーション・クラスタを対象としている。 MPIはPVMの後に設計されたために、明らかにPVMにおける問題点を学んでいる。 つまりMPIの方がPVMに比べて、高レベルのバッファ操作が可能であり、高速にメッセージを受け渡すことができる。 そして、オープンなフォーラムによって達成された「標準」であるために、MPIで作成されたプログラムは非常に移植性が高い。 MPIがPVMに勝っている点を以下に示す。 @MPIはフリーの実行可能かつ高品質なインプリメンションを1つ以上持っている。 AMPIは第3者的な決定機関を持っている。 BMPIグループは完全に非同期通信をサポートしている。 CMPIグループはしっかりとした基盤と持ち能率的で決定論的な側面を持っている。 DMPIは効果的なメッセージバッファを扱うことができる。 EMPIにおける同時性は第3者的なソフトウェア機関により保護されている。 FMPIは効果的なMPP、クラスタのプログラミングを行うことができる。 GMPIは全体的にポータブルである。 HMPIは正式に明示されている。 IMPIが標準である。 上記の主な理由としてはやはり移植性の良さ、MPIフォーラムの存在が言えるだろう。 −最近、MPIが広く使われている理由− MPIが新規格であるMPI-2の仕様において、それまでのPVMにしか無かった「動的なプロセス管理」の機能を取り入れるなど活発な動きを見せているから。 参考文献 http://mikilab.doshisha.ac.jp/dia/smpp/cluster2000/PDF/chapter02.pdf http://erpc1.naruto-u.ac.jp/~geant4/pvm/pvm.html 個人の感想 MPIとPVMの各特徴を調べましたが、正直文章だけでの理解に困りました。 実際にMPI機能を取り入れたものとPVM機能をとりいれたものの2つを使って 比べてみたいと思いました。 |
| << 前記事(2005/10/20) | トップへ | 後記事(2005/11/14)>> |
| タイトル (本文) | ブログ名/日時 |
|---|
| 内 容 | ニックネーム/日時 |
|---|
| << 前記事(2005/10/20) | トップへ | 後記事(2005/11/14)>> |