高度に非同期の通信パターンでMPIアプリケーションを最適化しようとしています。各ランクには計算するもののリストがあり、入力または出力が異なるランクにある場合は、必要に応じてメッセージを送信します。さらに、各ランクはスレッド化されています(現在、1つの通信スレッドと5つのワーカー)。
コードのさまざまなパフォーマンスクリティカルな部分にタイマーを使用してコードをインストルメント化しました。これにより、各スレッドの(開始、終了、タイプ)トリプルのリストが表示されます。横軸を時間、縦軸をランクとスレッド、そして各スレッドが現在何をしているかを示す色で、わかりやすい方法でプロットすると、6スレッド/ランクの16ランクで次のような画像が得られます。
私の質問は、パフォーマンスの問題を突き止めるのに役立つこのデータを視覚化する他の方法は何ですか?誰かが非同期アプリケーションのプロファイリングに使用するお気に入りのタイプのプロットを持っていますか?
このデータセットは、データフロー構造を認識していないという点で制限されていますが、より複雑なものを収集する前に、できる限り多くの洞察を得たいと思います。
誰もが見回したい場合に備えて、非圧縮画像がここにあります(通常のルートでアップロードできませんでした)。残念ながら、Firefoxは有効であると私が信じているにもかかわらず、それを受け入れません。おそらくそれが単に大きすぎるためです。