インテル® C++ コンパイラー 14.0 ユーザー・リファレンス・ガイド

omp single

チーム内の 1 つのスレッドにより 1 回だけ実行するコードブロックの開始位置を指定します。

構文

#pragma omp single [clause,clause , ...]

structured-block

引数

clause

次の 1 つまたは複数の形式を指定できます。

  • copyprivate(list)

  • firstprivate(list)

  • nowait(integer expression)

  • private(list)

説明

常に 1 つのスレッドだけが構造ブロックを実行できます。チーム内のほかのスレッドは、nowait が指定されていない限り、single 構造のにある暗黙的なバリアで待機します。nowait が指定されている場合、チーム内のほかのスレッドは、構造ブロックの後のコードを直ちに実行します。

例

次の例は、このプラグマを使用して、printf 関数を 1 回だけ実行する方法を示します。チーム内の関数を実行しないすべてのスレッドは、直ちに次の計算に進みます。

#include <omp.h>

#pragma omp parallel
{
	#pragma omp single nowait
	{
		printf(“Starting calculation\n”);
	}
	
	// 計算を実行
}

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