これらのオプションは、収集されるデータの種類を制御します。データの種類については、「コレクタが収集するデータの内容」を参照してください。
データ収集オプションを指定しなかった場合、デフォルトは -p on で、デフォルトのプロファイル間隔 (約 10 ミリ秒) で時間ベースのプロファイルが行われます。このデフォルト設定は、-h オプションを使用することによってのみ無効にできます。
時間ベースのプロファイルを明示的に無効とし、すべてのトレースとハードウェアカウンタオーバーフロープロファイルを有効にしなかった場合、collect コマンドは警告メッセージを出力し、大域データだけを収集します。
時間ベースのプロファイルデータを収集します。option に使用できる値は次のとおりです。
off - 時間ベースのプロファイルを無効にします。
on - デフォルトのプロファイル間隔 (約 10 ミリ秒) で時間ベースのプロファイルを有効にします。
lo[w] - 低分解能プロファイル間隔 (約 100 ミリ秒) で時間ベースのプロファイルを有効にします。
hi[gh] - 高分解能プロファイル間隔 (約 1 ミリ秒) で時間ベースのプロファイルを有効にします。高分解能のプロファイルについては、「時間ベースのプロファイルに関する制限事項」を参照してください。
[+]value - 時間ベースのプロファイルを有効にし、プロファイル間隔を value に設定します。value のデフォルトの単位はミリ秒です。value は、整数または浮動小数点数として指定できます。オプションとして、数値の後ろに接尾辞 m を付けてミリ秒単位を選択するか、u を付けてマイクロ秒単位を選択することができます。プロファイル間隔は、時間の分解能の倍数である必要があります。時間の分解能値よりも大きな値であっても倍数でない場合は、端数が切り捨てられます。時間の分解能値よりも小さな値の場合は、警告メッセージが出力され、時間の分解能に設定されます。
SPARC プラットフォームでは、ハードウェアカウンタのプロファイルと同様に、値の前に + 記号を付けると、時間ベースのデータ空間プロファイルが有効になります。
collect コマンドは、デフォルトで時間ベースのプロファイルデータを収集します。
ハードウェアカウンタオーバーフローのプロファイルデータを収集します。カウンタ定義の数はプロセッサによって異なります。
このオプションは、Linux オペレーティングシステムを実行しているシステムでも、perfctr パッチをインストールすれば使用できるようになります。このパッチは、http://user.it.uu.se/~mikpe/linux/perfctr/2.6/ からダウンロードできます。インストール方法の指示は、tar ファイルに含まれています。ユーザーレベルの libperfctr.so ライブラリは、LD_LIBRARY_PATH 環境変数の値を使用して検索されたあとで、32 ビットバージョンでは /usr/local/lib、/usr/lib、および /lib で、64 ビットバージョンでは /usr/local/lib64、/usr/lib64、および /lib64 で検索されます。
使用可能なカウンタの一覧を表示するには、引数なしで collect コマンドを端末ウィンドウに入力します。カウンタの一覧については、「ハードウェアカウンタのリスト」を参照してください。ほとんどのシステムでは、カウンタが一覧に記載されていない場合でも、16 進数または 10 進数の数値で指定できます。
カウンタ定義には、プロセッサがハードウェアカウンタの属性をサポートしているかどうかに応じて、次のいずれかの形式を使用できます。
[+]counter_name[/ register_number][,interval ]
[+]counter_name[~ attribute_1=value_1]...[~attribute_n =value_n][/ register_number][,interval ]
プロセッサ固有の counter_name には、次のいずれかを指定できます。
カウンタ名の別名
生の名前
10 進数または 16 進数の数値
複数のカウンタを指定する場合、それらのカウンタは異なるレジスタを使用する必要があります。同じレジスタが指定された場合、collect コマンドはエラーメッセージを出力して終了します。
ハードウェアカウンタがメモリーアクセスに関連するイベントをカウントする場合、カウンタ名の前に + 記号を付けて、カウンタのオーバーフローを発生させた命令の実際のプログラムカウンタアドレス (PC) の検索をオンにすることができます。バックトラッキングは SPARC プロセッサ上で、load、store、load-store のいずれかのタイプのカウンタでのみ機能します。検索が成功すると、仮想 PC、物理 PC、および参照された有効アドレスがイベントデータパケットに格納されます。
一部のプロセッサでは、属性オプションをハードウェアカウンタと関連付けることができます。プロセッサが属性オプションをサポートしている場合は、collect コマンドを引数リストなしで実行すると、属性名を含むカウンタ定義が一覧表示されます。属性値は、10 進数または 16 進数形式で指定できます。
間隔 (オーバーフロー値) は、ハードウェアカウンタがオーバーフローしてオーバーフローイベントが記録されたときにカウントされたイベントまたはサイクルの数です。間隔は、次のいずれかに設定できます。
on または NULL 文字列 - デフォルトのオーバーフロー値で、collect を引数なしで入力することによって判別できます。
hi[gh] - 選択したカウンタの高分解能値で、デフォルトのオーバーフロー値の約 1/10 です。旧バージョンのソフトウェアとの互換を図るため、h の省略形もサポートされています。
lo[w] - 選択したカウンタの低分解能値で、デフォルトのオーバーフロー値の約 10 倍です。
interval - 特定のオーバーフロー値で、10 進数または 16 進数形式の正の整数です。
デフォルトでは、各カウンタに定義済みの通常のしきい値が使用されます。これらの値はカウンタの一覧に表示されます。「ハードウェアカウンタオーバーフローのプロファイルに関する制限事項」も参照してください。
-p オプションを明示的に指定せずに -h オプションを使用すると、時間ベースのプロファイルが無効となります。ハードウェアカウンタデータと時間ベースデータの両方を収集するには、-h オプションと -p オプションの両方を指定する必要があります。
同期待ちトレースデータを収集します。option に使用できる値は次のとおりです。
all - しきい値 0 で同期待ちトレースを有効にします。このオプションは、すべての同期イベントの記録を強制的に有効にします。
calibrate - 同期待ちトレースを有効にし、実行時に測定を行うことによってしきい値を設定します。on と等価です。
off - 同期待ちトレースを無効にします。
on - 同期待ちトレースを有効にし、デフォルトのしきい値 (実行時の測定により値を決定) に設定します。calibrate と等価です。
Java プログラムでは同期待ちトレースデータは記録されず、指定するとエラーとして処理されます。
Solaris では、次の関数がトレースされます。
mutex_lock() |
rw_rdlock() |
rw_wrlock() |
cond_wait() |
cond_timedwait() |
cond_reltimedwait() |
thr_join() |
sema_wait() |
pthread_mutex_lock() |
pthread_rwlock_rdlock() |
pthread_rwlock_wrlock() |
pthread_cond_wait() |
pthread_cond_timedwait() |
pthread_cond_reltimedwait_np() |
pthread_join() |
sem_wait() |
Linux では、次の関数がトレースされます。
pthread_mutex_lock() |
pthread_cond_wait() |
pthread_cond_timedwait() |
pthread_join() |
sem_wait() |
ヒープトレースデータを収集します。option に使用できる値は次のとおりです。
on - ヒープの割り当て要求および割り当て解除要求のトレースを有効にします。
off - ヒープトレースを無効にします。
デフォルトでは、ヒープのトレースは無効です。ヒープトレースは Java プログラムについてはサポートされず、指定するとエラーとして処理されます。
MPI 実験の収集を指定します。collect コマンドのタ−ゲットは mpirun コマンドである必要があります。また、mpirun コマンドのオプションは、‐‐ オプションを使って mpirun コマンドによって実行されるターゲットプログラムと分けて指定されることが必要です。(mpirun コマンドでは常に ‐‐ オプションを使用することで、collect コマンドとそのオプションを mpirun コマンド行の先頭に追加し、実験を収集できます。)この実験には通常の名前が付けられ、親の実験と呼ばれます。ディレクトリには MPI プロセスのそれぞれについて、ランクにより命名されたサブ実験が含まれます。
option に使用できる値は次のとおりです。
MPI-version - MPI 実験の収集を有効にします。指定された MPI バージョンが使用されます。MPI バージョンは、OMPT、CT、OPENMPI、MPICH2、MVAPICH2 のいずれかであることが必要です。Oracle Message Passing Toolkit は OMPT または CT を使用して指定できます。
off - MPI 実験の収集を無効にします。
デフォルトでは、MPI 実験の収集は無効になっています。MPI 実験の収集が有効な場合、-m オプションのデフォルト設定は on に変更されます。
collect コマンドをオプションなしで入力するか、-M オプションで認識されないバージョンを指定すると、MPI のサポートされているバージョンが表示されます。
MPI トレースデータを収集します。option に使用できる値は次のとおりです。
on - MPI トレース情報を有効にします。
off - MPI トレース情報を無効にします。
MPI トレースは、デフォルトで無効です。ただし -M オプションが有効な場合は、デフォルトで有効になります。通常、MPI 実験は -M オプションで収集され、MPI トレースのユーザー制御は不要です。MPI 実験の収集を行うが、MPI トレースデータは収集しない場合、明示的なオプションの -M MPI-version -m off を使用します。
呼び出しがトレースされる MPI 関数とトレースデータをもとに計算されるメトリックスの詳細については、「MPI トレースデータ」を参照してください。
標本パケットを定期的に記録します。option に使用できる値は次のとおりです。
off - 定期的標本収集を無効にします。
on - 定期的標本収集を有効にし、デフォルトの標本収集間隔 (1 秒) を設定します。
デフォルトでは、1 秒間隔による定期的標本収集が有効になります。
カウントデータを記録します (Solaris システムのみ)。
この機能を使用するには、Add-on Cool Tools for OpenSPARC に含まれているバイナリインタフェースツール (Binary Interface Tool、BIT) をインストールする必要があります。このツールは、http://cooltools.sunsource.net/ からダウンロードできます。BIT は、Solaris バイナリのパフォーマンスやテストスイートカバレージの測定用ツールです。
option には次のいずれかの値を指定できます。
on - 関数と命令のカウントデータの収集を有効にします。カウントデータと、シミュレートされたカウントデータは、実行可能ファイル、および設置されており実行可能ファイルが静的にリンクされている任意の共有オブジェクトについて、それらの実行可能ファイルと共有オブジェクトが -xbinopt=prepare オプションでコンパイルされたものであれば、記録されます。静的にリンクされていても -xbinopt=prepare オプションでコンパイルされていないそのほかの共有オブジェクトは、データに含まれません。動的に開かれる共有オブジェクトは、シミュレートされたカウントデータに含まれません。
関数、行などのカウントメトリックスに加えて、パフォーマンスアナライザの「命令頻度」タブ、または er_print ifreq コマンドにより、さまざまな命令の利用率の概要を確認することもできます。
off - カウントデータの収集を無効にします。
static - ターゲットの実行可能ファイル、および静的にリンクされている共有オブジェクト内で、すべての命令が 1 回だけ実行されたという前提で実験を生成します。-c on オプションと同様に、-c static オプションも、実行可能ファイルと共有オブジェクトが -xbinopt=prepare フラグを指定してコンパイルされている必要があります。
デフォルトでは、カウントデータの収集を無効にします。ほかの種類のデータについて、カウントデータを収集することはできません。
bit 計測のディレクトリを指定します。このオプションは Solaris システムでのみ使用可能で、-c オプションも同時に指定されている場合のみ意味を持ちます。
bit() 計測から除外するライブラリを指定します。ここで指定したものは、ライブラリが実行可能ファイルにリンクされているか、dlopen() によって読み込まれるかにかかわらず、除外されます。このオプションは Solaris システムでのみ使用可能で、-c オプションも同時に指定されている場合のみ意味を持ちます。-N オプションは複数指定できます。
スレッドアナライザ用に、データ競合検出またはデッドロック検出のデータを収集します。次のいずれかの値を指定できます。
race - データ競合検出のデータを収集します。
deadlock - デッドロックと潜在的デッドロックのデータを収集します。
all - データ競合検出とデッドロック検出のデータを収集します。
off - スレッドアナライザのデータを無効にします。
collect -r コマンドとスレッドアナライザについての詳細は、『Oracle Solaris Studio 12.2: スレッドアナライザユーザーズガイド』および tha (1) のマニュアルページを参照してください。