インテル® C++ コンパイラー 15.0 ユーザー・リファレンス・ガイド
スレッドのチームにより並列に実行される構造ブロックを指定します。
#pragma omp parallel [clause, clause, ...] |
structured-block
clause |
次の 1 つまたは複数の clause を指定できます。
|
このプラグマに到達したスレッドは、構造ブロックを実行するスレッドのチームを構築します。このプラグマに到達したスレッドは、スレッド番号 0 のマスタースレッドになります。残りのスレッドは、1 ~(N-1) の範囲の一意の番号を割り当てられます。N は、チーム内のスレッドの数です。チーム内のスレッドの数は構造ブロックの継続期間中、一定です。
次の例は、このプラグマを使用して、それぞれ start、end、および tag 変数のプライベート・コピーを持つ N スレッドのチームを作成する方法を示します。各 tag 変数は、そのスレッドの tag の値で初期化されます。各スレッドはコードを実行し、それぞれの開始時間と合計時間を計算して、共有配列 timing に記録します。
例 |
---|
#include <omp.h> void compute(int tag) { double timing[n], start, end; #pragma omp parallel private(start, end) firstprivate(tag) num_threads(n) { start = omp_get_wtime(); // some parallel computation using “tag” end = omp_get_wtime(); timing[omp_get_thread_num()] = end – start; } } |