インテル® C++ コンパイラー 15.0 ユーザー・リファレンス・ガイド
SIMD (Single Instruction, Multiple Data) 命令を使用して同時に実行可能なループの開始位置を指定します。ループの各反復は、チーム内の 1 つのスレッドにより実行されます。
#pragma omp for simd[clause{[, clause, ...]] |
for loops
clause |
次のいずれかです。
|
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]; } } |