在windows下和Linux下运行的结果不一样,怎么办?
我在windows下编写的程序,但是在windows下运行是错误的,也没检查出问题,让人检查的时候在Linux下运行了一遍,发现结果又对了。这是为什么啊不好说 , 计算结果不对,多半不是操作系统差别,而是编译器差别.
检查下是否有变量未初始化一类的吧.
进行 debug 调试可能会有帮助. 本帖最后由 珊瑚虫 于 2014-8-14 10:22 编辑
1.检查是否是同一个程序
2.检查输入数据是否相同
如果前两项相同
3. 看看程序是否该初始化的地方没有初始化
4. 另外你用的是CPU 还是GPU, 如果是GPU 结果有差异非常正常,最好把两台机器的ECC都打开。另外CPU好像也有ECC控制,也可能导致计算精度差异
百事可乐 发表于 2014-8-13 20:38
不好说 , 计算结果不对,多半不是操作系统差别,而是编译器差别.
检查下是否有变量未初始化一类的吧.
进行 de ...
一个是65一个是77,f77出的结果是连续的,但是65出的结果不连续 珊瑚虫 发表于 2014-8-14 10:12
1.检查是否是同一个程序
2.检查输入数据是否相同
如果前两项相同
什么叫该初始化的地方?用的都是CPU。那该怎么办? haiyefeng 发表于 2014-8-14 10:53
一个是65一个是77,f77出的结果是连续的,但是65出的结果不连续
你是说CVF6.5 和G77 ?
请理解,65和6.5的区别,也请理解77和G77的区别.
变量未初始化,意思就是:
real :: a , b
b = a + 1
此时,a 没有值。到底 b 的结果是什么,不同编译器可能就不同。 列出代码与两个操作系统的编译截图。能出来结果,并不代表结果一定是正确的。
页:
[1]