看板 Fortran 關於我們 聯絡資訊
這起天拿老闆的舊程式來使用,遇到了一個狀況 原本程式放在研究室裡面的一台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
noonee:linux那台的 compiler是哪個? 02/07 23:45
janhon:如果程式有溢位錯誤也會這樣,或者最佳化參數開太多 02/08 00:20
jsb:個人經驗:compaq容錯範圍較大,有些程式的小瑕疵不易發現。 02/08 04:30
jsb:運算正常不一定表示結果正確。如果沒把握結果是否合理, 02/08 04:32
jsb:建議把程式修到 linux 也能跑出結果。 02/08 04:32
jsb:compiler造成的小誤差我也遇到過。沒去追過原因。 02/08 04:34
goodzey:我也遇過...可是一看連執行檔大小都不樣就釋懷了 02/08 10:46
meteorology:也許是編譯器上初始設定運算位數的影響~ 02/08 14:10