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