MPICH2

研究でMPICHを使うことになっている。MPICH1をターゲットとして考えているが、MPICH2がどういうものか良くわかっていなかったので、MPICH1とMPICH2との違いを軽く調べてみた。

MPICH2の利点

  • MPICHよりも故障に強く、効果的で、使いやすい
  • 実行環境について
    • MPICHではデフォルトの実行環境にはp4ライブラリを用いていた。このライブラリでは、プロセスはrsh、sshなどのリモートシェルで投げられる。また、ジョブが実行されるノード情報はスケールしない手法でジョブ実行時に取得し、配布される。さらに、ジョブ実行に問題が生じたときには、プロセス管理機構とコミュニケーション機構のもつれのため、ややこしいことになる。
    • MPICH2では、プロセス管理とコミュニケーションを完全に分離している。デフォルトの実行環境はmpdと呼ばれるデーモンより成り、これはジョブが実行される前にノード間で接続を確立するプロセスである。このプロセスにより、高速でスケーラブルな実行環境の確立を可能にし、問題発生時にも問題の原因究明が容易に行える。
  • コマンドについて
    • MPICHではジョブ実行用にmpirunが提供されていた。
    • MPICH2では、MPI-2フォーラムにより推奨されているmpiexecコマンドを用いてジョブ実行を行う。mpirunもMPICHとの互換性のために用意はされている。
  • 現存するMPIライブラリの中ではどれよりも高性能らしい(先輩談)

良く無い点

  • ハックが大変(先輩談)

以上、参考にしたのは、「MPICH2 User's Guide」の第2章。参考文献がこれだけなので、下手な日本語訳みたいなものかな?