OpenMP* アプリケーションの既存のバリアーの情報を表示します。
OpenMP* バリアーは、特定のセットのすべてのスレッドがスレッドの実行を続ける前に到達しなければならないアプリケーション中のポイントを定義します。
このコマンドは、OpenMP* アプリケーションで barrier_id で指定した既存のバリアーについて次の情報を表示します。
状態
バリアーに到達したスレッド
バリアーの場所
バリアーが待機中のタスクのリスト
現在のバリアーを作成したソースコード
barrier_id を指定しない場合、このコマンドは OpenMP* アプリケーションのすべての既存のバリアーを表示します。
このコマンドは、OpenMP* バージョン 3.0 以上をサポートしています。古いバージョンでは、このコマンドの機能は制限されます。
c_explicit_barriers.c のコードの行 26-34 を例に考えます。
26 while ( num != go ) {
27 sleep( sleep_time );
28 }; // while
29 sleep( sleep_time );
30
31 bp(); // No barriers for the first hit, one thread reach the barrier second hit, etc.
32 ++ go; // Let the next thread go.
33
34 #pragma omp barrier
次の例は、idb info barrier で表示される出力を示しています。この例では、ブレークポイントは行 31 にすでに設定されています。
(idb) c Continuing. Breakpoint 1, test (num_threads=-1225743048) at c_explicit_barriers.c:31 31 bp(); (idb) idb info barrier 80100003 workshare barrier for team 8, waiting threads Created at: "c_explicit_barriers.c":test:34:34 3 threads have reached: 1 3 4 Awaiting tasks: unknown