根据操作系统的不同结果

时间:2013-03-22 13:44:48

标签: operating-system fortran compiler-optimization compiler-options

我正在使用Fortran编写的CFD代码。它的某些部分已经与OpenMP并行化。即使我转向OpenMP并在Windows和Linux机器上使用相同的编译器选项(-O3),我也会得到不同的结果。在尝试关闭优化(-O0)并将(-fp-model source)添加到我的编译器选项之后,它仅在2次迭代步骤后显示NaN。有没有其他原因导致不同的结果,我怎样才能保证它们是相同的)

谢谢, 塞巴斯蒂安

P.S。:两台机器使用相同的英特尔Fortran编译器2013,64位并且具有Intel Xeon CPU。

1 个答案:

答案 0 :(得分:1)

根据算法和分辨率,通过启用并行性,无错误的CFD代码可能会得到明显不同的结果。

正如HPMark所说,改变平台时可能会出现微小的差异。差异很大表明您有一些编译器或系统特定的代码,需要处理移植。当你关闭DOWN优化级别时遇到重大问题可能是内存错误。

当你遇到这样令人困惑的情况时,要小心一次只改变一件事。