1

我正在使用用 Fortran 编写的 CFD 代码。它的某些部分已与 OpenMP 并行化。即使我在 Windows 和 Linux 机器上打开 OpenMP 并使用相同的编译器选项 (-O3),我也会得到不同的结果。在尝试关闭优化 (-O0) 并将 (-fp-model 源) 添加到我的编译器选项后,它仅在 2 个迭代步骤后显示 NaN。是否有任何其他原因导致结果不同,我如何确保它们相同)

谢谢,塞巴斯蒂安

PS:两台机器都使用相同的 Intel Fortran Compiler 2013,都是 64 位的,并且有一个 Intel Xeon CPU。

4

1 回答 1

1

根据算法和分辨率,没有错误的 CFD 代码可能会通过打开并行性获得显着不同的结果。

正如 HPMark 所暗示的,更换平台时可能会出现细微的差异。较大的差异表明您有一些编译器或系统特定的代码,需要进行移植工作。当您关闭优化级别时遇到重大问题可能是内存错误。

当您遇到这种令人困惑的情况时,请注意一次只更改一件事。

于 2013-03-23T04:11:22.473 回答