Oracle® Solaris Studio 12.4: パフォーマンスアナライザ

印刷ビューの終了

更新: 2015 年 1 月
 
 

メトリックリスト

多くの er_print コマンドでは、メトリックキーワードのリストを使用します。リストの構文は次のとおりです。

metric-keyword-1[:metric-keyword2…]

測定されたデータに基づく動的メトリックの場合、メトリックのキーワードは、メトリックフレーバー文字列、メトリック表示形式文字列、およびメトリック名文字列の 3 つの部分から構成されます。これらは、空白を入力せずに次のように続けて指定します。

flavorvisibilityname

実験内のロードオブジェクトの静的プロパティー (名前、アドレス、およびサイズ) に基づく静的メトリックの場合、メトリックのキーワードは、メトリック名とその前に付加されるメトリック表示形式文字列 (オプション) を空白なしに結合して構成されます。

[visibility]name

メトリックの flavor 文字列と visibility 文字列は、フレーバー文字と表示形式文字を使用して指定します。

指定可能なメトリックフレーバー文字をTable 5–1 に示します。複数のフレーバー文字を含むメトリックキーワードが展開されて、メトリックキーワードリストになります。たとえば、ie.user は、展開されて i.user:e.user になります。

表 5-1  メトリックフレーバー文字
文字
説明
e
排他的メトリック値を表示します。
i
包括的メトリック値を表示します。
a
属性メトリック値を表示します (呼び出し元 - 呼び出し先メトリックの場合のみ)。
d
データ領域メトリック値を表示します (データ派生メトリックの場合のみ)。

指定可能なメトリック表示形式文字をTable 5–2 に示します。表示形式文字列の文字の順序は、対応するメトリックの表示順序には影響しません。たとえば、i%.useri.%user はともに i.user:i%user と解釈されます。

表示形式だけが異なるメトリックは、常に標準の順序で一緒に表示されます。表示形式だけが異なる 2 つのメトリックキーワードがほかのキーワードで区切られている場合は、標準の順序で 2 つのメトリックの 1 つ目の位置にメトリックが表示されます。

表 5-2  メトリック表示形式文字
文字
説明
.
メトリックを時間で表示します。この指定は、サイクルカウントを計測する時間メトリックとハードウェアカウンタメトリックに適用されます。そのほかのメトリックは「+」と解釈されます。
%
プログラム全体のメトリックを百分率で表示します。呼び出し元 - 呼び出し先リストの属性メトリックの場合は、選択した関数の包括的メトリックの割合が表示されます。
+
メトリックを絶対値で表示します。ハードウェアカウンタの場合、この値はイベントの回数です。時間メトリックの場合は「.」と解釈されます。
!
メトリック値を表示しません。ほかの表示形式文字と組み合わせることはできません。

フレーバー文字列と可視文字列のそれぞれが複数の文字から構成されている場合は、フレーバー文字列が先に展開されます。すなわち、ie.%user は展開されて i.%user:e.%user になり、i.user:i%user:e.user:e%user と解釈されます。

静的メトリックの場合、ソート順序の定義という観点からは、表示形式文字のピリオド (.)、正符号 (+)、パーセント記号 (%) は同等と見なされます。つまり、sort i%usersort i.usersort i+user はすべて、「どのような形式で表示するにせよ、パフォーマンスアナライザは包括的ユーザー CPU 時間を基準にソートする」ことを意味します。また、sort i!user は、「表示するかどうかに関係なく、パフォーマンスアナライザは包括的ユーザー CPU 時間を基準にソートする」という意味になります。

可視文字の感嘆符 (!) を使用すると、各フレーバーのメトリックに組み込みのデフォルト値を置き換えられます。

メトリックリスト内で同じメトリックを複数回表示した場合は、最初に出現したものだけが処理され、それ以後のものは無視されます。名前付きメトリックがリストにない場合は、そのメトリックがリストに付加されます。

Table 5–3 に、タイミングメトリック、同期遅延メトリック、メモリー割り当てメトリック、MPI トレースメトリック、および 2 つの一般的なハードウェアカウンタメトリックに 指定可能な er_print メトリック名文字列を示します。ほかのハードウェアカウンタメトリックの場合、メトリック名文字列はカウンタ名と同じです。ロードされた実験に適用できるすべてのメトリック名文字列のリストは、metric_list コマンドで表示できます。カウンタ名を一覧表示するには、collect -h コマンドをほかの引数を指定せずに発行します。ハードウェアカウンタについての詳細は、ハードウェアカウンタプロファイリングデータを参照してください。

表 5-3  メトリック名文字列
カテゴリ
文字列
説明
クロックプロファイリングメトリック
total
スレッド合計時間
totalcpu
合計 CPU 時間
user
ユーザー CPU 時間
system
システム CPU 時間
trap
トラップ CPU 時間
lock
ユーザーロック時間
datapfault
データページフォルト時間
textpfault
テキストページフォルト時間
kernelpfault
カーネルページフォルト時間
stop
停止時間
wait
CPU 待ち時間
sleep
スリープ時間
ハードウェアカウンタメトリック
insts
発行された命令
サポートするすべてのシステムで使用できます。
cycles
CPU サイクル
サポートするほとんどのシステムで使用できます。さらに、それぞれのプロセッサには独自のカウンタセットがあります。システムのすべてのカウンタのリストを表示するには、collect -h を使用します。
CPI
cycles および insts メトリックから計算された命令当たりのサイクル数。両方のカウンタが記録される場合にのみ使用できます。
IPC
cycles および insts メトリックから計算されたサイクル当たりの命令数。両方のカウンタが記録される場合にのみ使用できます。
OpenMP プロファイリングメトリック
ompwork
作業を直列または並列で実行する時間
ompwait
OpenMP ランタイムが同期を待っている時間
masterthread
マスタースレッド時間は、マスタースレッドで費やされた合計時間です。これは Solaris 実験からのみ使用できます。これは時計時間に対応します。
同期遅延メトリック
sync
同期待ち時間
syncn
同期待ち回数
ヒープトレースメトリック
heapalloccnt
割り当て数
heapallocbytes
割り当てバイト数
heapleakcnt
リーク数
heapleakbytes
リークバイト数
I/O トレースメトリック
ioreadbytes
読み取りバイト数
ioreadcnt
読み取り数
ioreadtime
読み取り時間
iowritebytes
書き込みバイト数
iowritecnt
書き込み数
iowritetime
書き込み時間
ioothrcnt
その他の I/O 数
ioothertime
その他の I/O 時間
ioerrornt
I/O エラー数
ioerrortime
I/O エラー時間
スレッドアナライザのメトリック
raccesses
データ競合のアクセス
deadlocks
デッドロック
MPI トレースメトリック
mpitime
MPI 呼び出しに費やされた時間
mpisend
開始された MPI ポイントツーポイント送信数
mpibytessent
MPI で送信されるバイト数
mpireceive
完了した MPI ポイントツーポイント受信数
mpibytesrecv
MPI で受信されるバイト数
mpiother
その他の MPI 関数の呼び出し数
MPI プロファイリングメトリック
mpiwork
MPI ランタイムで作業する (処理の要求やメッセージなど) 時間
mpiwait
MPI ランタイムで、イベント、バッファー、またはメッセージを待っている時間

Table 5–3 に示した名前文字列のほかに、2 つの名前文字列をデフォルトのメトリックリスト内でのみ使用できます。この 2 つの文字列は、任意のハードウェアカウンタ名に一致する hwc と、任意のメトリック名文字列に一致する any です。また、cyclesinsts は、SPARC® プラットフォームと x86 プラットフォームに共通のものですが、それ以外のアーキテクチャー固有のフレーバーも存在します。

ロードした実験から使用可能なメトリックを確認するには、metric_list コマンドを発行します。