Есть программа
#pragma omp for
for (size_t i = 0; i < layers.size(); ++i)
//code
Программа даёт такой же результат как и при последовательном запуске.
Но
#pragma omp parallel num_threads(8)
{
#pragma omp for
for (size_t i = 0; i < layers.size(); ++i)
//code
}
Даёт другой результат, хотя смысл то тот же.
С чем это может быть связано?
Барьерами код обставлен.
Код в цикле меняет значение переменной в классе, но все ячейки затрагиваются разными тредами и память не перераспределяется.