Как вычисления детерминированы расчеты с плавающей точкой?

Расчет с плавающей точкой не является ни ассоциативным, ни распределительным на процессорах. Так,

(A + B) + C не равен A + (B + C)

и A * (B + C) не равен A * B + A * C

Есть ли способ выполнить детерминированную расчету с плавающей точкой, которые не дают разных результатов. Это было бы детерминировано по однопроцессору конечному, но он не будет детерминирован в многопоточных программах, если потоки добавляют в сумму, например, так как могут быть разные перемешивания потоков.

Итак, мой вопрос, как можно добиться детерминированных результатов для расчетов плавучей точкой в ​​многопоточных программах?

13
задан MetallicPriest 9 September 2011 в 18:21
поделиться