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 萬個餘弦並且平行計算它們的值。我們還計算執行時間以檢視並行化是否對效能有任何影響。最後,因為我們確實測量了時間,所以我們必須確保編譯器不會優化我們已經完成的工作,因此我們假裝使用結果只返回它。