インテル® C++ コンパイラー 15.0 ユーザー・リファレンス・ガイド
チーム内の 1 つのスレッドにより 1 回だけ実行するコードブロックの開始位置を指定します。
#pragma omp single [clause,clause , ...] |
structured-block
clause |
次の 1 つまたは複数の clause を指定できます。
|
常に 1 つのスレッドだけが構造ブロックを実行できます。チーム内のほかのスレッドは、nowait が指定されていない限り、single 構造のにある暗黙的なバリアで待機します。nowait が指定されている場合、チーム内のほかのスレッドは、構造ブロックの後のコードを直ちに実行します。
次の例は、このプラグマを使用して、printf 関数を 1 回だけ実行する方法を示します。チーム内の関数を実行しないすべてのスレッドは、直ちに次の計算に進みます。
例 |
---|
#include <omp.h> #pragma omp parallel { #pragma omp single nowait { printf(“Starting calculation\n”); } // Do some calculation } |