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