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];
  }
}