MPICH2
研究でMPICHを使うことになっている。MPICH1をターゲットとして考えているが、MPICH2がどういうものか良くわかっていなかったので、MPICH1とMPICH2との違いを軽く調べてみた。
MPICH2の利点
- MPI-2の完全なサポート
- ダイナミックプロセス管理
- ワンサイド操作
- 並列I/O
- などなど
- MPICHよりも故障に強く、効果的で、使いやすい
- 実行環境について
- MPICHではデフォルトの実行環境にはp4ライブラリを用いていた。このライブラリでは、プロセスはrsh、sshなどのリモートシェルで投げられる。また、ジョブが実行されるノード情報はスケールしない手法でジョブ実行時に取得し、配布される。さらに、ジョブ実行に問題が生じたときには、プロセス管理機構とコミュニケーション機構のもつれのため、ややこしいことになる。
- MPICH2では、プロセス管理とコミュニケーションを完全に分離している。デフォルトの実行環境はmpdと呼ばれるデーモンより成り、これはジョブが実行される前にノード間で接続を確立するプロセスである。このプロセスにより、高速でスケーラブルな実行環境の確立を可能にし、問題発生時にも問題の原因究明が容易に行える。
- コマンドについて
- MPICHではジョブ実行用にmpirunが提供されていた。
- MPICH2では、MPI-2フォーラムにより推奨されているmpiexecコマンドを用いてジョブ実行を行う。mpirunもMPICHとの互換性のために用意はされている。
- 現存するMPIライブラリの中ではどれよりも高性能らしい(先輩談)
良く無い点
- ハックが大変(先輩談)
以上、参考にしたのは、「MPICH2 User's Guide」の第2章。参考文献がこれだけなので、下手な日本語訳みたいなものかな?