在Fortran中乘以两个REAL时,是否有可能在两台不同的计算机上获得不同的结果?

时间:2018-06-01 20:49:17

标签: fortran

我已经在我的计算机上开发了一些代码,现在我在群集上运行完全相同的代码,并且我正在比较结果。由于我计算的是一个非常大的数组并且我没有将其写入文件,因此我计算了一个哈希函数(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)。

0 个答案:

没有答案