私は MPICH2 に自動的に付属する新しい Process Manager について勉強していますが、今までこの実装の大きな進歩が何であるかを理解できません。誰かが良いチュートリアルを知っているか、経験がありますか?
アルゴンヌ wiki はちょっと単純すぎる: http://wiki.mcs.anl.gov/mpich2/index.php/Using_the_Hydra_Process_Manager
2 に答える
私が働いている場所の観点から見ると、最大の進歩はプロセス起動のスケーラビリティです。MPICH2ベースのMPI実装で以前のプロセスランチャーを使用して8000以上のタスクジョブを起動するのは非常に遅く、タイムアウトやその他のネットワークの問題が原因で失敗することがよくありました。ただし、Hydraには、リソースマネージャーを利用できる優れた階層型起動モデルがあります。
トポロジを意識した割り当て戦略も優れていますが、ジョブの起動が失敗する(または数時間かかる)場合とジョブが成功する場合の違いと比較すると、2次的な効果があります。
ジョブの起動時間の大幅な改善については、Jonathan に完全に同意します。さらに、hydra は一般的に、ほぼすべての面で以前のプロセス マネージャーよりもはるかに便利で堅牢です。MPICH2 の以前のすべてのプロセス マネージャーよりも確実に起動し、より多くの機能 (プロセス コア バインディング、フォーマット ベースの出力ファイル リダイレクト、リソース マネージャーとバッチ スケジューラーの統合など) を備え、不可解なエラー メッセージが少なくなります。
もう 1 つの重要な考慮事項は、ヒドラが積極的に維持されている一方で、他のほぼすべての PM が現時点で非推奨またはサポートされていないことです。したがって、hydra のバグを報告すると、修正される可能性が高くなりますが、これは MPD や remshell には当てはまりません。
私の知る限り、自分が何をしているのかわかっていれば、UPC プログラムなどの非 MPI ジョブを起動するために hydra を使用することもできます。