【发布时间】:2009-12-25 16:26:54
【问题描述】:
嗨,
我开发了一些混合 C/C++ 代码,并进行了一些密集的数值计算。在 Linux 和 Mac OS X 中编译时,模拟结束后我得到非常相似的结果。在 Windows 中,该程序也可以编译,但我得到的结果非常不同,有时该程序似乎无法运行。
我在所有系统中都使用了 GNU 编译器。有朋友推荐我加了-frounding-math,现在windows版本好像更稳定了,但是Linux和Os X,他们的结果一点都没有改变。
您能否推荐其他选项以在 Win 和 Linux/OSX 版本之间获得更多一致性?
谢谢
P.D.我还尝试了 -O0 (没有优化)并指定了 -m32
【问题讨论】:
-
Linux 和 OS X 都使用 GCC,所以我希望得到完全相同的结果——前提是它们都运行在相同的处理器架构上。你真的在那里得到了“相似”的结果吗?如果是这样,一些随机性似乎会注入到您的计算中。任何未初始化的变量?!