Можно ли получить разные результаты на двух разных компьютерах при умножении двух REAL в Fortran? - PullRequest
0 голосов
/ 01 июня 2018

Я разработал некоторый код на своем компьютере и сейчас выполняю точно такой же код в кластере, и я сравниваю результаты.Поскольку я вычисляю очень большой массив и не записываю его в файл, я вычисляю хеш-функцию (Adler32) для сравнения полученных массивов.

Где-то в коде, который я выполняю: SUP = (YPL*ELOG) + 1./(YPL*ELOG).При записи только YPL в массив и вычислении хэша он одинаков в обоих случаях, и то же самое относится к ELOG.Но при умножении дает разные ответы.Все перечисленные переменные являются REAL.

Я компилирую скрипт с точно такими же флагами компиляции, за исключением дополнительного флага компиляции -mcmodel=large в кластере.Однако в кластере используется gcc версии 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC), и на моем компьютере я использую gcc версии 7.1.0 (Homebrew GCC 7.1.0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...