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

動作中のプロセスからのトレースデータの収集

トレースデータを収集する場合は、プログラムを実行する前に、コレクタライブラリの libcollector.so を事前に読み込んでおく必要があります。 これは、このライブラリによって、データの収集を可能にする実関数にラッパーが提供されるためです。また、コレクタは、ほかのシステムライブラリの呼び出しにもラッパー関数を追加し、それによって完全なパフォーマンスデータを確保できます。コレクタライブラリを事前に読み込まなかった場合、ラッパー関数は挿入できません。コレクタがシステムライブラリ関数に割り込む方法の詳細については、「システムライブラリの使用」を参照してください。

libcollector.so を事前に読み込むには、次の表に示すように、環境変数を使用してライブラリ名とライブラリパスの両方を設定する必要があります。ライブラリ名を設定するには、環境変数 LD_PRELOAD を使用します。ライブラリのパスを設定するには、環境変数 LD_LIBRARY_PATHLD_LIBRARY_PATH_32、または LD_LIBRARY_PATH_64 を使用します。LD_LIBRARY_PATH は、_32_64 バリアントが定義されていない場合に使用します。これらの環境変数をすでに定義している場合は、新しい値を追加してください。

表 3–2 libcollector.so ライブラリを事前に読み込むための環境変数の設定

環境変数 

値 

LD_PRELOAD

libcollector.so

LD_LIBRARY_PATH

/opt/SUNWspro/prod/lib/dbxruntime

LD_LIBRARY_PATH_32

/opt/SUNWspro/prod/lib/dbxruntime

LD_LIBRARY_PATH_64

/opt/SUNWspro/prod/lib/v9/dbxruntime

LD_LIBRARY_PATH_64

/opt/SUNWspro/prod/lib/amd64/dbxruntime

Sun Studio ソフトウェアが /opt/SUNWspro 以外にインストールされている場合は、システム管理者に正しいパスを確認してください。LD_PRELOAD にフルパスを設定することもできますが、そのようにすると、SPARC V9 の 64 ビットアーキテクチャーを使用するときに問題が発生する可能性があります。


注 –

実行が終了したら、LD_PRELOADLD_LIBRARY_PATH の設定を削除し、同じシェルから起動されるほかのプログラムが設定の影響を受けないようにしてください。


すでに実行中の MPI プログラムからデータを収集する場合は、プロセスごとに 1 つの dbx インスタンスを接続し、それらのプロセスごとにコレクタを有効にする必要があります。MPI ジョブのプロセスに dbx を接続すると、各プロセスが停止され、別々の時間に再起動されます。この時間差によって MPI プロセス間のインタラクションに変化が生じ、収集するパフォーマンスデータに影響を及ぼす可能性があります。この問題の影響を最小限にするための 1 つの方法に、 pstop(1) コマンドを使用してすべてのプロセスを停止することがあります。ただし、プロセスを一度 dbx に接続すると、dbx からそれらのプロセスを再開する必要があり、そのときに時間的な遅延が発生して、MPI プロセスの同期に影響が出ることがあります。「MPI プログラムからのデータの収集」も参照してください。