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 万个余弦并且并行计算它们的值。我们还计算执行时间以查看并行化是否对性能有任何影响。最后,因为我们确实测量了时间,所以我们必须确保编译器不会优化我们已经完成的工作,因此我们假装使用结果只返回它。