C 中的典型示例
#include <stdio.h>
#include <math.h>
#include <omp.h>
#define N 1000000
int main() {
double sum = 0;
double tbegin = omp_get_wtime();
#pragma omp parallel for reduction( +: sum )
for ( int i = 0; i < N; i++ ) {
sum += cos( i );
}
double wtime = omp_get_wtime() - tbegin;
printf( "Computing %d cosines and summing them with %d threads took %fs\n",
N, omp_get_max_threads(), wtime );
return sum;
}
在這個例子中,我們只計算 100 萬個餘弦並且平行計算它們的值。我們還計算執行時間以檢視並行化是否對效能有任何影響。最後,因為我們確實測量了時間,所以我們必須確保編譯器不會優化我們已經完成的工作,因此我們假裝使用結果只返回它。