[問題] 同一個程式,不同電腦跑運算,結果不同

看板Fortran作者 (junfat)時間16年前 (2009/02/07 21:48), 編輯推噓3(305)
留言8則, 5人參與, 最新討論串1/3 (看更多)
這起天拿老闆的舊程式來使用,遇到了一個狀況 原本程式放在研究室裡面的一台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

02/07 23:45, , 1F
linux那台的 compiler是哪個?
02/07 23:45, 1F

02/08 00:20, , 2F
如果程式有溢位錯誤也會這樣,或者最佳化參數開太多
02/08 00:20, 2F

02/08 04:30, , 3F
個人經驗:compaq容錯範圍較大,有些程式的小瑕疵不易發現。
02/08 04:30, 3F

02/08 04:32, , 4F
運算正常不一定表示結果正確。如果沒把握結果是否合理,
02/08 04:32, 4F

02/08 04:32, , 5F
建議把程式修到 linux 也能跑出結果。
02/08 04:32, 5F

02/08 04:34, , 6F
compiler造成的小誤差我也遇到過。沒去追過原因。
02/08 04:34, 6F

02/08 10:46, , 7F
我也遇過...可是一看連執行檔大小都不樣就釋懷了
02/08 10:46, 7F

02/08 14:10, , 8F
也許是編譯器上初始設定運算位數的影響~
02/08 14:10, 8F
文章代碼(AID): #19ZP4PXG (Fortran)
文章代碼(AID): #19ZP4PXG (Fortran)