I'm currently trying to learn ow to use OpenMP and I have a question. Is it safe to do something like that :
std::atomic<double> result;
#pragma omp parallel for
for(...)
{
result+= //some stuff;
}
Or shall I use :
double result;
#pragma omp parallel for
for(...)
{
double tmp=0;
//some stuff;
#pragma omp atomic
result+=tmp;
}
Thanks !
Edit : I know the most simple way to handle that is using an array, but Im asking because I'm curious