1

最近開発したアプリケーションは、Message Passing Interface標準を介して通信する複数のプロセッサを使用していますが、一部の部分では、非同期で実行される複数のスレッドが関係しています(std::async)。

私は、openMPIと組み合わせてg++-4.6.3でUbuntu12.04x86を実行しています。

コンパイラフラグにを追加し-p -g -pgてgprofを実行しても、有用な出力は生成されません。基本的に、すべてがすぐに完了したと表示されます。

そのようなプログラムをプロファイリングする方法は?

4

2 に答える 2

1

これには、私の雇用主が開発したAllinea MAPをお勧めします。MPI アプリケーションのプロファイルを作成し、ソース コードのどこでアプリケーションの時間がかかっているかを示します。メモリ使用量、MPI 通信、および計算コストの非常に役立つグラフがいくつかあり、パフォーマンスの問題領域を簡単に拡大できます。

アプリケーションを使い始めるためにアプリケーションを再コンパイルする必要はありません。実行時にプロファイリングが自動的に追加されます。

これは商用ソフトウェアですが、30 日間の試用版があります。

于 2013-03-31T19:52:40.493 に答える
0

マルチスレッド プログラムの場合、大きな MPI プロファイル ガンを持ち出す必要はありません。私は Intel の VTune を使用していますが、複数のスレッドのプロファイリングに優れています。30 日間の試用版を入手できます。

于 2013-02-19T06:47:11.487 に答える