Sun Studio 12: パフォーマンスアナライザ

メトリックリスト

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


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

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


flavorvisibilityname

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


[visibility]name

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

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

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

文字 

内容の説明 

e

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

i

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

a

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

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

指定可能なメトリック表示形式文字を表 6–2 にまとめます。表示形式文字列を構成する文字の順序は重要ではありません。対応するメトリックの表示順序が、この指定順序の影響を受けることはありません。たとえば、i%.useri.%user はともに i.user:i%user と解釈されます。

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

表 6–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 時間を基準にソートする」という意味になります。

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

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

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

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

カテゴリ 

文字列 

内容の説明 

時間メトリック 

user

ユーザー CPU 時間 

 

wall

時計時間 

 

total

LWP 合計時間 

 

system

システム CPU 時間 

 

wait

CPU 待ち時間 

 

ulock

ユーザーロック時間 

 

text

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

 

data

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

 

owait

ほかの待ち時間 

同期遅延メトリック 

sync

同期待ち時間 

 

syncn

同期待ち回数 

MPI トレースメトリック 

mpitime

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

 

mpisend

MPI 送信関数の数 

 

mpibytessent

MPI 送信関数で送信したバイト数 

 

mpireceive

MPI 受信関数の数 

 

mpibytesrecv

MPI 受信関数で受信したバイト数 

 

mpiother

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

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

alloc

割り当て数 

 

balloc

割り当てバイト数 

 

leak

リーク数 

 

bleak

リークバイト数 

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

cycles

CPU サイクル 

 

insts

発行された命令 

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

raccesses

データ競合のアクセス 

 

deadlocks

デッドロック 

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

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