JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.3: パフォーマンスアナライザの MPI のチュートリアル     Oracle Solaris Studio 12.3 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  パフォーマンスアナライザの MPI のチュートリアル

MPI とパフォーマンスアナライザについて

チュートリアル用の設定

MPI ソフトウェアの取得

Oracle Solaris 10 および Linux 用の MPI ソフトウェア

Oracle Solaris 11 用の MPI ソフトウェア

サンプルソースコードの準備

ClusterTools および Open MPI 用のサンプルコード

Oracle Solaris 11 の Oracle Message Passing Toolkit 用のサンプルコード

サンプルプログラムのコンパイルと実行

ring_c 例に関するデータの収集

実験の開始

「MPI タイムライン」のナビゲート

メッセージの詳細の表示

関数の詳細とアプリケーションソースコードの表示

MPI タブでのデータのフィルタリング

フィルタスタックの使用

「MPI チャート」タブの使用

「MPI チャートコントロール」の使用

メッセージの送信場所を示すチャートを作成する

メッセージの受信待ち時間がもっとも長いランクを示すチャートを作成する

遅いメッセージが MPI 関数に費やされる時間に与える影響を調べる

結論

A.  MPI チャートコントロールの設定

B.  チュートリアルのサンプルコード

「MPI チャート」タブの使用

MPI_Init および MPI_Finalize がすでにフィルタで除去されている状態で、「MPI チャート」の機能を調べます。初期チャートには、どの関数にもっとも長い時間がかかったかが示されます。

  1. 「MPI チャート」タブをクリックして、次のようなチャートを表示します。

    image:関数の「MPI チャート」

    「MPI チャート」タブが開き、関数がすべてのプロセスで実行されたときにかかった実行時間の合計を示すチャートが表示されます。チャートの右側にある垂直方向の虹色のスケールは、色と値のマッピングを示しています。この例では、MPI_Send および Application 関数にかかった時間がほとんどないのに対し、MPI_Recv の累積時間は 3 秒近くにもなりました。

  2. MPI_Recv」関数のバーをクリックします。

    バーの正確な値が「MPI チャートコントロール」タブに表示されます。

このアプリケーションでは、どのプロセスもトークンがほかのすべてのプロセスに渡されるまで待機します。結果として、MPI_Recv にはかなりの時間が費やされ、MPI 関数間の時間を表す状態である Application にはほとんど時間が費やされません。あとで確認するとおり、あるランクへのメッセージ配信の遅れはほかのすべてのランクの進行を妨げます。

「MPI チャートコントロール」の使用

このセクションでは、さまざまな方法で「MPI チャートコントロール」タブを使用してデータを図形化する方法について説明します。解析中のプログラムによっては、一部のチャートオプションがほかのものよりも役に立ちます。すべての MPI チャートコントロールについては、付録 A MPI チャートコントロールの設定を参照してください。

メッセージの送信場所を示すチャートを作成する

  1. 「MPI チャートコントロール」タブで次の選択を行なって、メッセージを調べるチャートを作成します。

    データ型:

    メッセージ

    チャート:

    2D チャート

    X 軸:

    送信プロセス

    Y 軸:

    受信プロセス

    メトリック:

    実行時間

    演算子:

    最大

  2. 「変更を表示更新する」をクリックすると、次のようなチャートが表示されます。

    image:メッセージの実行時間の「MPI チャート」

    このチャートは、プロセス 0 がプロセス 1 にのみ送信することを示しています。プロセス 1 はプロセス 2 にのみ送信し、以下同様になります。各ボックスの色は選択したメトリック (「経過時間」) と演算子 (「最大」) によって設定されます。このグラフの「データ型」は「メッセージ」であるため、これはメッセージの実行時間の合計になるか、または時間寸法におけるメッセージ線の長さになります。

    チャートの色はランク間のメッセージの最大実行時間を示しています。この例では、到達にかかる時間がもっとも長いメッセージが P14 から P15 に送信されました。

メッセージの受信待ち時間がもっとも長いランクを示すチャートを作成する

  1. 「MPI チャートコントロール」タブで次の選択を行います。

    データ型:

    メッセージ

    チャート:

    Y ヒストグラム

    X 軸:

    N/A

    Y 軸:

    受信プロセス

    メトリック:

    実行時間

    演算子:

    最大

  2. 「変更を表示更新する」をクリックして、新しいチャートを表示します

    image:待ち時間がもっとも長いランクを示すチャート

    この例では、チャートは P15 ランクがメッセージを受信するのにもっとも長く待機したことを示しています。

  3. これらの実行時間の長いメッセージが発生した時期についてのヒストグラムを表示するには、コントロールに対して次の選択を行います。

    データ型:

    メッセージ

    チャート:

    X ヒストグラム

    X 軸:

    受信時間

    Y 軸:

    N/A

    メトリック:

    実行時間

    演算子:

    最大

  4. 「変更を表示更新する」をクリックして次のようなチャートを表示します。

    image:メッセージの実行時間を時間の経過とともに示す「MPI チャート」

    この例では、もっとも遅いメッセージが 3.981 秒で受信されました。

遅いメッセージが MPI 関数に費やされる時間に与える影響を調べる

実行時間の長いメッセージの影響を調べるには、関数の実行時間と時間との比較を示すグラフを作成します。

  1. 「MPI チャートコントロール」タブで次の選択を行なって、メッセージを調べるチャートを作成します。

    データ型:

    関数

    チャート:

    2D チャート

    X 軸:

    終了時間

    Y 軸:

    実行時間

    メトリック:

    実行時間

    演算子:

    最大

  2. 「変更を表示更新する」をクリックします。

    この例では、グラフは実行時間の長い関数が含まれるいくつかの時間領域を示しています。t=3.99 のところで関数の実行時間が 20 秒を超えていることに注意してください。この時間は、前のチャートに表示されている、所要時間の長いメッセージに一致しています。

    image:関数の実行時間の「MPI チャート」
  3. これらの実行時間の長い関数の周囲をボックスでドラッグしてズームすることで、それらを特定します。

    image:関数の実行時間のズームされた「MPI チャート」
  4. 「フィルタ」ボタンをクリックして、これらの関数呼び出しのみを調べます。

    image:実行時間の長い関数呼び出しを示すようにフィルタされた「MPI チャート」
  5. 「MPI タイムライン」タブをクリックします。

    「MPI タイムライン」で実行時間の長い関数を識別できます。それらは配信時間の遅いメッセージの結果です。

    image:実行時間の長い関数呼び出しを示す「MPI タイムライン」
  6. 「削除」および「再適用」ボタンをクリックして、実行時間の長い関数の周囲のコンテキストをトグルします。

「MPI チャートコントロール」の詳細は、付録 A MPI チャートコントロールの設定を参照してください