作者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