誰かがOpenMPIとMPICHの実装の違いをMPI?どちらがより良い実装ですか?
実動システムではなく開発を行う場合は、MPICHを使用してください。 MPICHにはデバッガが組み込まれていますが、Open-MPIは前回チェックしていません。
実稼働環境では、Open-MPIの方が高速になる可能性があります。しかし、その後、Intel MPIなどの他の代替手段を調査することもできます。
前のポスターに同意します。両方を試して、どちらがアプリケーションの実行速度が速いかを確認してから、実稼働に使用してください。どちらも標準に準拠しています。デスクトップの場合はどちらでも構いません。 OpenMPIはMacbookですぐに使用できるようになり、MPICHはLinux/Valgrindにより適しているようです。それはあなたとあなたのツールチェーンの間にあります。
実稼働クラスターの場合は、より広範なベンチマークを実行して、ネットワークトポロジに最適化されていることを確認する必要があります。実稼働クラスターで構成することは、RTFMを使用する必要があるため、時間の面で大きな違いになります。
どちらも標準に準拠しているため、正確性の観点からどちらを使用するかは問題ではありません。特定のデバッグ拡張機能など、必要な機能がない限り、両方のベンチマークを行い、ハードウェア上のアプリのどちらか速い方を選択します。また、MVAPICH(最高のInfiniBandパフォーマンスを持つことができる)やIntel MPI(広く)など、より良いパフォーマンスまたは互換性を提供する可能性のある他のMPI実装があることも考慮してくださいサポートされているISV)。HPは、MPI多数のISVコードで認定されるように努力しましたが、Platformに販売された後、どの程度うまくいくかわかりません...
私の経験から、OpenMPIはサポートしているがMPICHはサポートしていない優れた機能の1つは、プロセスアフィニティです。たとえば、OpenMPIでは、-npersocket
各ソケットで起動されるランクの数を設定できます。また、OpenMPIのrankfile
は、コアにランクを特定したり、オーバーサブスクライブしたりする場合に非常に便利です。
最後に、ランクからコアへのマッピングを制御する必要がある場合は、OpenMPIを使用してコードを記述およびコンパイルすることをお勧めします。