Omp atomic特性依赖10.3.0及以上的系统GCC版本

Omp atomic特性依赖系统GCC的libgcc,低于10.3.0的系统GCC版本可能引发运行结果异常。如果需要使用请保证系统GCC版本满足要求。使用Omp atomic特性的具体用例如下:

1
2
3
4
5
6
7
8
9
void foo(double *Ptr, double M, double N) {
    double sum = 0;
    #pragma omp parallel for
    for (int i = 0; i < 100; ++i){
        Ptr[i] = i+(M*2 + N);
        #pragma omp atomic
        sum += Ptr[i];
    }
}