インテル® C++ コンパイラー 15.0 ユーザー・リファレンス・ガイド
並列ループを指定します。ループの各反復は、チーム内の 1 つのスレッドにより実行されます。
#pragma omp for [clause, clause, ...] |
for loop
clause |
省略するか、次の節を 1 つ以上指定できます。
|
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); } |