2

私は計算流体ダイナミスト (CFD) ですが、mpi についてはよくわかりません。

負荷の高い CFD ジョブには Infiniband のサポートが必要であるため、mvapich は通常、他の mpi 実装よりもはるかに優れていると言われています。これは本当ですか?誰も私が見ることができる実際の経験と参考文献を持っていますか? また、mvapich が openmpi などよりも優れているのはなぜですか? それは Infiniband 社によって書かれたものですか、それとも何ですか?

どうもありがとう!

4

3 に答える 3

8

回答に関してジョナサンに同意し、クラスター管理の観点からいくつかの点を追加します。

時々クラスター管理に没頭する人として、大規模なクラスターで InfiniBand を調整するのは簡単な作業ではないことを付け加えておきます。OFED スタックがカーネルに適切に配置されていることを確認する必要があります。ハードウェアに障害がなく、スイッチが持続モードでパフォーマンスの問題なく期待どおりに動作しており、アプリケーションが InfiniBand トポロジなどに正しくマップされていること。

OpenMPI スタックは、MPICH/MVAPICH とはかなり異なります。OpenMPI コンポーネント アーキテクチャは、モノリシックな MPICH/MVAPICH のアーキテクチャよりも、問題の発見とデバッグが容易であることがわかりました。

ベンダーといえば、 MPICHはアルゴンヌの MCS 部門から提供されていることを思い出してください。

更新:バージョン 3.1 以降、MPICH は ib ネットワーク モジュールを介して OFED InfiniBand をサポートします。3.2 MPICH 以降、Mellanox MXM インターフェイスもサポートされます。

MVAPICHは、オハイオ州の CS&E 部門の人々によって MPICH ソースの上に構築されています。

多くのハードウェア ベンダーは、MPICH または MVAPICH の上に構築して、それぞれのハードウェアに InfiniBand サポートを提供しています。その一例がIntel MPIです。もう 1 つはVoltaire MPIです。

OpenMPIは、Cisco などの InfiniBand スイッチ ベンダーがサポートする複数のチームによって開発されています。

HP MPIは、現在 Platfrom から入手できる汎用クラスター向けのもう 1 つの非常に優れた MPI 実装でした。

于 2012-10-26T05:44:19.743 に答える
8

したがって、答えは「おそらくそうではなく、とにかく問題ではありません」です。

MPI API を使用してコードを記述し、複数の LAPACK 実装の場合と同様に、いつでも複数の MPI ライブラリをインストールしてそれぞれに対してテストできます。アプリケーションで一貫して高速な場合は、それを使用してください。しかし、MPI コミュニティはパフォーマンスに非常に関心を持っており、無料の競合他社はすべてオープン ソースであり、論文でメソッドを公開しており、多くのベンチマークを公開しています。友好的な競争は、オープン性と相まって、どの実装も長期にわたってパフォーマンス上の大きな利点をもたらさないことを意味する傾向があります。

大規模な x86 クラ​​スターで、MPICH2、OpenMPI、MVAPICH2、および IntelMPI を使用して、「実世界」およびマイクロ ベンチマークを実行しました。3 つのオープンソース バージョンの中で、明確な勝者はいませんでした。場合によっては 10 ~ 20% の差で勝つこともあれば、同じだけ負ける場合もあります。理由を見つけるために詳細を掘り下げることに興味を持ったいくつかの機会では、多くの場合、熱心な制限や異なる集団アルゴリズム間のクロスオーバーなどのデフォルトの問題であり、いくつかの環境変数を設定することでパフォーマンスが得られましたそれらの間のノイズの中で。その他のケースでは、パフォーマンスの利点は持続しましたが、さらに調査するほど大きくないか、一貫性が十分ではありませんでした。

(かなりの費用がかかる IntelMPI は非常に大規模なジョブの起動時間が大幅に改善されたことが大きな利点であると考えていますが、顕著にほぼ一貫して高速でした。)

MVAPICH は、Myrinet で多くの経験を積んだ後、Infiniband のパフォーマンスを実際に追求した最初の MPI 実装の 1 つであり、かなり長い間、MVAPICH で大きな利点がありました。しかし、最終的には一貫した重要なパフォーマンスの勝利は得られず、メインのオープン ソース MPI オプションとして OpenMPI を採用しました。

于 2012-10-26T01:01:24.023 に答える
2

CFL コードはうまくスケーリングしません。

MVAPICH2 と直接話すことはできませんが、クラスターにネイティブな MPI を使用することをお勧めします。したがって、Cray マシンを使用している場合は、Cray の MPI を使用します。魔法のように機能します。ベンダーが推奨する mpi を使用すると、大きな違いが生じます。

あなたの質問に直接答えるために、メッセージサイズが短い範囲に収まる場合、MVAPICH2 には OpenMPI に勝るスイートスポットがあります。あなたの CFL コードはこの範囲に入る可能性があると思います。大規模なクラスターでは、2k を超える PE で動作しているときに MVAPICH2 でレイテンシー値に問題が発生することがわかりましたが、人々は 2k PE で CFL を実行しません。

最終的に、この理論をテストする十分な動機があります。どのコードを OpenFOAM、Fluent で実行していますか?

于 2012-10-25T21:41:39.027 に答える