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

omp single

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

構文

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

structured-block

引数

clause

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

  • 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”); }
	
	// Do some calculation
}

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