不正な実験データ

ここでは、実験のデータが不正であったり、誤っていると思われるデータをパフォーマンスアナライザが表示したりする状況を紹介します。

dbx をプロセスに接続するときのハードウェアカウンタデータに誤りがある

コレクタライブラリをあらかじめ読み込まないまま、ハードウェアカウンタライブラリ libcpc.so を使用しているプロセスに dbx を接続してハードウェアカウンタデータのコレクションを有効にすると、実験が破損します。 コレクタによるハードウェアカウンタライブラリの使用がプログラムによる使用と衝突するのです。 dbx でプロセスに接続しハードウェアカウンタオーバーフロープロファイリングを有効にしてから libcpc.so を読み込み、 かつ libcpc.so 内の関数の参照を汎用検索によって解決すれば、 実験を正しく記録できます。 この場合、コレクタライブラリの ラッパールーチンによって参照が解決され、プログラムによるハードウェアカウンタ関数の使用は禁止されます。

「概要」タブに表示される CPU 待ち時間が誤っている

標本パッケージと大域統計には、誤った CPU 待ち時間が記録されることがあります。 これらの値はパフォーマンスアナライザの「統計」タブに表示され、「タイムライン」タブの標本の表示に影響します。 この問題は現時点では解決されていません。

ユーザー CPU 時間が少なすぎる

システムに対して負荷がかかっている状態でプログラムに関する時間ベースプロファイルデータを収集すると、ユーザー CPU 時間値が実際より最大 20% 少なくなることがあります。少ない分のユーザー CPU 時間は、システム CPU 時間または待ち CPU 時間として現われます。 回避策は、可能であればシステムに負荷がかかっていない状態でデータを収集することです。

注釈付きソース行のメトリックが表示されない

関数を動的にコンパイルし、この関数に関する情報をコレクタ API を使用して標本コレクタに提供する場合、注釈付きソースコードを見ることができます。 ただし、表示されるのは、選択した関数のゼロ以外のメトリックだけです。 ソースファイル内の他の関数については、メトリックが表示されません。 これは、ソース行についてメトリックが記録されなかったのではなく、単に値が提供されていないだけです。

<合計> の時間が「統計」タブに表示されている時間と一致しない

「統計」タブに表示される時間値には、<合計> の時間メトリック値に含まれるもの以外が起因する値が含まれます。 これらの原因は、次のとおりです。

OpenMP 並列化指令の時間が多すぎる

OpenMP 並列化指令のソース行について報告される包括的時間は、誤って二重にカウントされています。 本体関数の概要としてソース行で報告される時間は、正確です。 一部の関数について報告される時間も、結果として間違っていることになります。


著作権と商標について