インテル® C++ コンパイラー 15.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]; }
}

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