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

omp for

並列ループを指定します。ループの各反復は、チーム内の 1 つのスレッドにより実行されます。

構文

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

for loop

引数

clause

省略するか、次の節を 1 つ以上指定できます。

  • 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

説明

このプラグマに続く for ループは、現在アクティブなチームのスレッドにより並列に実行されます。

for ループを並列に実行して円周率 (pi) の値を計算する例

#include <omp.h> 
static long num_steps = 1000000000; 
double step; 
 
int main () { 
    double pi, sum = 0.0; 
    step = 1.0/(double) num_steps; 
 
    #pragma omp parallel { 
        int i; 
 
        #pragma omp for reduction(+:sum) 
        double x; 
        for (i=1; i<= num_steps; i++) { 
            x = (i-0.5)*step; 
            sum = sum + 4.0/(1.0+x*x); 
        }
    }
 
    pi = step * sum;  
    printf("The computed value of Pi is: %1.10lf\n", pi); 
}

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