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

メトリックリスト

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


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

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


flavorvisibilityname

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


[visibility]name

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

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

表 5–1 メトリックフレーバー文字

文字 

内容の説明  

e

排他的メトリック値を表示します。 

i

包括的メトリック値を表示します。 

a

属性メトリック値を表示します (呼び出し元 - 呼び出し先メトリックの場合のみ)。 

データ空間メトリック値を表示します (データ派生メトリックスの場合のみ)。 

指定可能なメトリック表示形式文字を表 5–2 に示します。指定可能なメトリック表示形式文字を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 時間を基準にソートする」という意味になります。

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

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

表 5–3 に、時間メトリックス、同期遅延メトリックス、メモリー割り当てメトリックス、MPI トレースメトリックス、および 2 つの一般的なハードウェアカウンタメトリックスに指定可能な er_print メトリック名文字列を示します。ほかのハードウェアカウンタメトリックスの場合、メトリック名文字列はカウンタ名と同じです。読み込まれた実験に適用できるすべてのメトリック名文字列のリストは、metric_list コマンドで取得できます。カウンタ名は、collect コマンドを引数なしで使用することによって一覧表示できます。ハードウェアカウンタについての詳細は、「ハードウェアカウンタオーバーフローのプロファイルデータ」を参照してください。

表 5–3 メトリック名文字列

カテゴリ 

文字列 

内容の説明  

時間メトリックス 

user

ユーザー CPU 時間 

 

wall

実経過時間 

 

total

LWP 合計時間 

 

system

システム CPU 時間 

 

wait

CPU 待ち時間 

 

ulock

ユーザーロック時間 

 

text

テキストページフォルト時間 

 

data

データページフォルト時間 

 

owait

ほかの待ち時間 

時間ベースのプロファイルメトリックス 

mpiwork

MPI ランタイムで作業する (処理の要求やメッセージなど) 時間 

 

mpiwait

MPI ランタイムで、イベント、バッファー、またはメッセージを待っている時間 

 

ompwork

作業を直列または並列で実行する時間 

 

ompwait

OpenMP ランタイムが同期を待っている時間 

同期遅延メトリックス 

sync

同期待ち時間 

 

syncn

同期待ち回数 

MPI トレースメトリックス 

mpitime

MPI 呼び出しに費やされた時間 

 

mpisend

開始された MPI ポイントツーポイント送信数 

 

mpibytessent

MPI で送信されるバイト数 

 

mpireceive

完了した MPI ポイントツーポイント受信数 

 

mpibytesrecv

MPI で受信されるバイト数 

 

mpiother

その他の MPI 関数の呼び出し数 

メモリー割り当てメトリックス 

alloc

割り当て数 

 

balloc

割り当てバイト数 

 

leak

リーク数 

 

bleak

リークバイト数 

ハードウェアカウンタオーバーフローのメトリックス 

cycles

CPU サイクル 

 

insts

発行された命令 

スレッドアナライザのメトリックス 

raccesses

データ競合のアクセス 

 

deadlocks

デッドロック 

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

読み込んだ実験から使用可能なメトリックスを確認するには、metric_list コマンドを使用します。