-
次の例は、実験から gprof 形式に似た一覧を生成します。出力は er_print.out というファイルで、先頭の 100 個の関数と、関数ごとの属性ユーザー時間でソートされた呼び出し元 - 呼び出し先データの一覧です。
er_print -outfile er_print.out -metrics e.%user \
-sort e.user -limit 100 -functions -cmetrics a.user \
-csort a.user -callers-callees test.1.er
|
この例のコマンドを分解して、次の独立した 2 つのコマンドにすることもできます。ただし、大規模な実験またはアプリケーションでは、er_print の呼び出しのたびに、かなりの時間がかかることがありますので注意してください。
er_print -metrics e.%user -sort e.user \
-limit 100 -functions test.1.er
|
er_print -cmetrics a.%user -csort a.user \
-callers-callees test.1.er
|
-
この例は、関数での時間の消費のされ方に関する概要情報を示します。
er_print -functions test.*.er
|
-
この例は、呼び出し元と呼び出し先の関係を示します。
er_print -callers-callees test.*.er
|
-
この例は、着目したいソース行を表示します。ソース行情報は、コードのコンパイルとリンクで -g が指定されていることを前提にしています。Fortran の関数とルーチンの場合は、関数名の最後に下線を付けてください。関数名のあとの 1 は、myfunction の複数インスタンスを区別するためのものです。
er_print -source myfunction 1 test.*.er
|
-
この例は、コンパイラのコメントのみ表示します。このコマンドを使用するためにプログラムを実行する必要はありません。
-
次の例では、時計時間プロファイルを使用して、関数および呼び出し元と呼び出し先を一覧表示しています。
er_print -metrics ei.%wall -functions test.*.er
|
er_print -cmetrics aei.%wall -callers-callees test.*.er
|
-
この例は、er_print コマンドを含むスクリプトを実行する方法を示します。
er_print -script myscriptfile test.1.er
|
myscriptfile スクリプトに er_print コマンドが含まれます。スクリプトファイルの例を次に示します。
## myscriptfile
## スクリプトの出力先を標準出力に設定
outfile -
## 実験に関する説明を表示
header
## すべての実験の標本データを出力
overview
## 指定した実験の現在の標本セット全体にわたって
## 集計された実行統計情報を出力
statistics
## 関数を一覧表示
functions
## 利用可能なロードオブジェクトの状態と名前を表示
object_list
## systime の注釈付き逆アセンブリコードを
## disasm.out ファイルに出力
outfile disasm.out
disasm systime
## synprog.c の注釈付きソースコードを
## source.out ファイルに出力
outfile source.out
source synprog.c
## スクリプトの処理を終了
quit
|
-
次の例は、高度な MPI 関数を表示します。MPI には多数の内部ソフトウェア層がありますが、この例では、エントリポイントだけを表示する 1 つの方法を示します。シンボルが重複する場合もありますが、それらは無視してかまいません。
er_print -functions test.*.er | grep PMPI_
|