私は MPI を使用しており、通信コストを測定して、それらを「処理」コストと比較できるようにしたいと考えています。私はそれを整理する必要があります。
この通信コストを測定するツールを知っている人はいますか? (例えば散布図)
たとえば、コードのパフォーマンスを分析するための PAPI があるように、MPI 通信コストを測定するものはありますか?
前もって感謝します!
私は MPI を使用しており、通信コストを測定して、それらを「処理」コストと比較できるようにしたいと考えています。私はそれを整理する必要があります。
この通信コストを測定するツールを知っている人はいますか? (例えば散布図)
たとえば、コードのパフォーマンスを分析するための PAPI があるように、MPI 通信コストを測定するものはありますか?
前もって感謝します!
はい、そのようなツールはたくさんあります。MPIは、他のライブラリがMPI関数呼び出しに介入し、カウント、タイミングなどを実行できるようにするツールインターフェイスを定義します。
非常に小さなMPIプロファイリングツールはmpiPです。これは、コード内のMPIアクティビティの非常に短い要約を提供します。
IPMライブラリは構築が非常に簡単で、多くのMPIカウントと回数を提供し、結果として優れたHTMLファイルを提供します。あなたはPAPIについて言及しています。IPMは、可能な場合はPAPIカウンターも統合します。私たちはこれを私たちのセンターで定期的に使用しています、そして私はこれがあなたが好きなことをするだろうと思います。MPI用のダイナミックライブラリを使用してプログラムを構築した場合、これを使用するために再コンパイルする必要はありません(mpiPには同じプロパティがあります)。
Jumpshotは、MPICH2に付属していますが、任意のMPIで構築でき、実際には、各MPI操作にかかった時間をタイムラインに表示します。
OpenSpeedshopは、コードの非常に詳細なパフォーマンス測定値を提供し、特に「高価な」行を強調します。また、コード行によってMPI時間を識別するMPIトレースモードもあります。インストールするのは難しい場合があります。
スペクトルの商用部分には、ドレスデン工科大学のVampirとIntel Trace Analyzer and Collector(ITAC)があります。Vampirは、オープンソースのVampirTraceライブラリを使用してソースレベル、MPI、およびOpenMPトレースを収集します。このライブラリは、PAPIと統合して、詳細なイベントおよびカウンタートレースを提供します。VampirTraceのトレースはOpenTraceFormatであり、Vampir以外のさまざまなツールで読み取ることができます。
ITACは、Intel ClusterStudioXEの一部です。これは主にIntelMPIで動作するように設計されており、Vampirと同じ祖先コードを共有し、多かれ少なかれ同じ機能を提供します。その優れた機能の1つは、含まれている自動実行時MPI正しさチェッカーです。
Allinea MAPは、AllineaのMPIプロファイラーであり、統合されたソースブラウザーを使用してパフォーマンス分析を提供し、ソースコードの個々の行とともに通信/計算コストを表示します。また、メモリ、CPU命令、通信などのパフォーマンス情報の高レベルのグラフも表示されます。
しかし、レポートを提供するだけでなく、実際にアドバイスを提供する、他のより高いレベルのツールがあります。TACCのperfexpertは、コマンドラインベースのツールであり、多くの測定を行い、パフォーマンス調整のアドバイスを提供します。ユーリッヒのScalascaは、多くのソースレベルのインストルメンテーションを使用してコードを再コンパイルし、負荷の不均衡、特に高価なMPIコレクティブなどを指摘できます。Vampirと統合して詳細なトレース分析を行うこともできます。