我目前正在尝试学习如何使用 OpenMP,但我有一个问题。这样做是否安全:
std::atomic<double> result;
#pragma omp parallel for
for(...)
{
result+= //some stuff;
}
或者我应该使用:
double result;
#pragma omp parallel for
for(...)
{
double tmp=0;
//some stuff;
#pragma omp atomic
result+=tmp;
}
谢谢 !
编辑:我知道最简单的处理方法是使用数组,但我问是因为我很好奇