2.4.2 sections のコンストラクト

sections ディレクティブは、チーム内のスレッド間で分割される構文のセットを指定する、反復されない work-sharing コンストラクトを識別します。 各セクションはチーム内のスレッドによって 1 回ずつ実行されます。 sections ディレクティブの構文は次のとおりです。

#pragma omp sections [clause[[,] clause] ...] new-line
   {
   [#pragma omp section new-line]
      structured-block
   [#pragma omp section new-line
      structured-block ]
...
}

clause は次のいずれかになります。

private(variable-list)

firstprivate(variable-list)

lastprivate(variable-list)

削減 (演算子変数リスト

nowait

各セクションの前には section ディレクティブが置かれます。ただし、最初のセクションの section ディレクティブは省略可能です。 section ディレクティブは、sections ディレクティブの構文範囲内に現れる必要があります。 nowait 句が指定されていない限り、sections コンストラクトの末尾に暗黙のバリアがあります。

sections ディレクティブに対する制限は次のとおりです。

  • section ディレクティブは、sections ディレクティブの構文範囲内に現れる必要があります。

  • sections ディレクティブに指定できる nowait 句は 1 つだけです。

クロス リファレンス

  • privatefirstprivatelastprivatereduction の各句については、25 ページのセクション 2.7.2 を参照してください。