作者junfat (junfat)
看板Fortran
标题[问题] 同一个程式,不同电脑跑运算,结果不同
时间Sat Feb 7 21:48:08 2009
这起天拿老板的旧程式来使用,遇到了一个状况
原本程式放在研究室里面的一台linux下工作(cpu去/proc/cpuinfo看是athlon 1800+)
complie都没问题,但是给予一个参数运算时,给到一个范围就过不去了
(看程式运算式没啥问题,也有可能我还没找到)
之後拿到我桌机上用compaq visual fortran 6.6 run
竟然可以完全正常运算,原本linux下不能算的范围都有结果了
之後拿原本可以在linux下正常运算结束的资料在linux和windows下各跑一次
结果理当来讲应该一样,但是结果有个小误差,
计算结果输出是E18.8,小数点後面前五位的值都一样,但是第六位以後就不同了
请问有人遇过这种情况吗?
ps.我现在桌机的cpu也是amd的
不同的fortran compiler会有计算上的小误差?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.1.54
1F:→ noonee:linux那台的 compiler是哪个? 02/07 23:45
2F:推 janhon:如果程式有溢位错误也会这样,或者最佳化参数开太多 02/08 00:20
3F:推 jsb:个人经验:compaq容错范围较大,有些程式的小瑕疵不易发现。 02/08 04:30
4F:→ jsb:运算正常不一定表示结果正确。如果没把握结果是否合理, 02/08 04:32
5F:→ jsb:建议把程式修到 linux 也能跑出结果。 02/08 04:32
6F:→ jsb:compiler造成的小误差我也遇到过。没去追过原因。 02/08 04:34
7F:→ goodzey:我也遇过...可是一看连执行档大小都不样就释怀了 02/08 10:46
8F:推 meteorology:也许是编译器上初始设定运算位数的影响~ 02/08 14:10