omp flush ディレクティブは、並列領域内のすべてのスレッドがメモリー内の同じビューの指定したオブジェクトを持っていることをコンパイラーが保証するポイントを識別します。
#pragma omp flush [ (list) ]
ここで、list は、同期化される変数のコンマ区切りのリストです。
list にポインターが含まれる場合、ポインターに参照されているオブジェクトではなく、ポインターがフラッシュされます。list が指定されていない場合は、自動ストレージ期間にアクセス不能なオブジェクトを除くすべての共用オブジェクトが同期化されます。
暗黙の flush ディレクティブは、以下のディレクティブとともに表示されます。
omp flush ディレクティブは、1 つのブロック内、または複合ステートメント内に現れなければなりません。例を以下に示します。
if (x!=0) { #pragma omp flush /* valid usage */ }
if (x!=0) #pragma omp flush /* invalid usage */
並列処理を制御するプラグマ
#pragma omp barrier
#pragma omp critical
#pragma omp for
#pragma omp parallel
#pragma omp parallel for
#pragma omp parallel sections
#pragma omp section、#pragma omp sections
#pragma omp single