Вероятность заключается в том, что это связано с упорядочением операций с плавающей запятой. Мы все полагаемся на то, что наши операции являются ассоциативными и коммутативными, но прискорбная истина заключается в том, что операции с плавающей запятой не являются коммутативными, поэтому при их распараллеливании результаты могут отличаться, поскольку порядок рандомизируется.
Попробуйте запустить ваши циклы задом наперед и посмотреть, отличается ли результат.
Если у вас есть потребности для каждого потока, OMP предоставляет гарантии об итерациях циклов, выпадающих на одни и те же потоки, т. Е. Если цикл равен от 1 до N на четырехъядерном ядре, итерации от 1 до N / 4 будут выполняться на одном и том же нить.
-Rick