Расчет с плавающей точкой не является ни ассоциативным, ни распределительным на процессорах. Так,
(A + B) + C
не равен A + (B + C)
и A * (B + C)
не равен A * B + A * C
Есть ли способ выполнить детерминированную расчету с плавающей точкой, которые не дают разных результатов. Это было бы детерминировано по однопроцессору конечному, но он не будет детерминирован в многопоточных программах, если потоки добавляют в сумму, например, так как могут быть разные перемешивания потоков.
Итак, мой вопрос, как можно добиться детерминированных результатов для расчетов плавучей точкой в многопоточных программах?