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

omp for simd

SIMD (Single Instruction, Multiple Data) 命令を使用して同時に実行可能なループの開始位置を指定します。ループの各反復は、チーム内の 1 つのスレッドにより実行されます。

構文

#pragma omp for simd[clause{[, clause, ...]]

for loops

引数

clause

次のいずれかです。

  • collapse()

  • firstprivate( list )

  • lastprivate( list )

  • nowait

  • ordered

  • private( list )

  • reduction( operator: list )

  • schedule (type[, chunk])

for loop

次の形式でなければなりません。

for (init-expr; test-expr; incr-expr)

structured-block

説明

このプラグマは、simd 構文に適用される任意の節と一致する方法で、関連する for ループを SIMD ループに変換します。生成される SIMD チャンクと残りの反復は、for 構文に適用される任意の節と一致する方法で、並列領域の暗黙のタスクにわたって分配されます。

例

次の例は、この宣言子を指定し、SIMD 命令を使用してループをコンパイルする方法を示します。

#pragma omp for simd schedule(static,10)
{
 
  for (i=0; i<N; i++) {

      a[i] = b[i] * c[i];

   }

}

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