擬似関数は、スレッドが OpenMP ランタイムライブラリ内でいずれかの状態にあったイベントを反映するために構築され、ユーザーモードおよび上級モード呼び出しスタック上に置かれます。
次の疑似関数が定義されています。
<OMP-overhead> |
OpenMP ライブラリ内で実行中 |
<OMP-idle> |
作業を待っているスレーブスレッド |
<OMP-reduction> |
縮約操作を実行中のスレッド |
<OMP-implicit_barrier> |
暗黙のバリアで待機中のスレッド |
<OMP-explicit_barrier> |
明示的なバリアで待機中のスレッド |
<OMP-lock_wait> |
ロックを待っているスレッド |
<OMP-critical_section_wait> |
critical セクションに入るのを待っているスレッド |
<OMP-ordered_section_wait> |
ordered セクションに入る順番を待っているスレッド |
<OMP-atomic_section_wait> |
OpenMP 原子構造で待機中のスレッド |
スレッドが、擬似関数のいずれかに対応する OpenMP ランタイム状態にある場合、擬似関数がスタック上のリーフ関数として追加されます。スレッドの実際のリーフ関数は、OpenMP ランタイムのどこかに存在する場合には、リーフ関数として <OMP-overhead> に置き換えられます。そうでない場合、OpenMP ランタイムに入っているすべての PC は、ユーザーモードスタックから除外されます。
OpenMP 3.0 プログラムでは、<OMP-overhead> 擬似関数は使用されません。この擬似関数は、OpenMP オーバーヘッドメトリックスに置き換えられています。