idb info taskwait (gdb モードのみ)

既存のタスクウェイトの情報を表示します。

構文

idb info taskwait [ taskwait_id, ... ]

パラメーター

taskwait_id

タスクウェイト ID。

説明

OpenMP* タスクウェイトは、特定のタスクバリアーです。現在のタスクやスレッドにより生成されたすべてのタスクがスレッドの実行を続ける前に到達しなければならないアプリケーション中のポイントを定義します。

このコマンドは、OpenMP* アプリケーションで taskwait_id で指定した既存のタスクウェイトについて次の情報を表示します。

taskwait_id を指定しない場合、このコマンドは OpenMP* アプリケーションのすべての既存のタスクを表示します。

このコマンドは、OpenMP* バージョン 3.0 以上をサポートしています。古いバージョンでは、このコマンドの機能は制限されます。

この例でデバッグしているプログラムは、タスクスポーンによって 5 番目のフィボナッチ数を計算して、前の 2 つの数を再帰的に計算します。次のソースコードを例に考えます。

1 #include <stdio.h>
2 #include <omp.h>
3 
4 static int fib(int n) {
5   if (n == 0) {
6     return 0;
7   } else if (n == 1) {
8     return 1;
9   } else {
10     int i = 0;
11     int j = 0;
12 
13 #pragma omp task shared(i)
14     i = fib(n-1);
15  
16 #pragma omp task shared(j)
17     j = fib(n-2);
18  
19 #pragma omp taskwait
20     return i+j;
21   }
22 }
23 
24 
25 main()
26 {
27   int result = 0;
28 
29   omp_set_num_threads(4);
30 
31 #pragma omp parallel
32   {
33     #pragma omp single
34     {
35       result = fib(5);
36     }
37   }
38 
39   printf("fib(5) = %d\n", result);
40 }

次の例は、idb info taskwait で表示される情報の種類を示しています。

(idb) 
					  b 6
Breakpoint 1 at 0x804898e: file /fib.C, line 6.
(idb) 
					  r
Starting program: /fib
[New Thread 3086866112 (LWP 22340)]
[New Thread 3086866112 (LWP 22340)]
[New Thread 1194912 (LWP 22341)]
[New Thread 7830432 (LWP 22342)]
[New Thread 9931680 (LWP 22343)]
[New Thread 15641504 (LWP 22344)]
 
Breakpoint 1, fib (n=0) at /fib.C:6
6     return 0;(idb) 
					  idb info taskwait
150000001           taskwait for task 15, waiting tasks
                    Encountering thread: 1
                    Created at: "/fib.C":fib:19:19
                    Awaiting tasks: 20 19 
 
190000001           taskwait for task 19, waiting tasks
                    Encountering thread: 3
                    Created at: "/fib.C":fib:19:19
                    Awaiting tasks: 25 26 
 
200000001           taskwait for task 20, waiting tasks
                    Encountering thread: 1
                    Created at: "/fib.C":fib:19:19
                    Awaiting tasks: 21 
 
210000001           taskwait for task 21, waiting tasks
                    Encountering thread: 1
                    Created at: "/fib.C":fib:19:19
                    Awaiting tasks: 23 24 

関連情報


このヘルプトピックについてのフィードバックを送信