蠢死了。

昨天發生一件疑似奇事 (其實已經發生了一年多, ):Intel Fortran Compiler (ifort) 8.1 編好的程式在 FC3 上可以跑,但在 sarge 裡會 segmentation fault。

本來以為是編譯器的問題,所以在兩邊編譯,參數相同,拿到兩邊去執行;結果 sarge 還是 seg fault,FC3 還是能跑。

glibc 的問題?FC3 用 2.3.3,sarge 用 2.3.2。Intel Release Note 裡面也說要用 2.3.2,看起來不像。

弄了一個多小時沒有結果。感謝 AndrewLee 提示我一個好用的工具 strace ,可以在執行期監視程式作的系統呼叫;可惜沒有幫助,我本來就知道出錯的程式位置了。

結果同事昨天回家狠拜了 google 大神之後,發現原來是 stack 太小。

真是欠學

sarge 預設 ulimit -s 8192 ,FC3 預設 ulimit -s 10240 ,就這樣。

為什麼說已經發生了一年多呢?因為自從 ifort 8.0 之後就有這個問題,我們一直以為是程式寫不好,也沒有拿到其它平台上測;ifort 編出來的程式又只抱怨 segmentation fault,不像 Compaq Visual Fortran 會叫 stack overflow/underflow。

很好,很好,ifort 9 今天也測了一下,都沒有問題了。

Posted by yungyuc at 17:31, 3 comments, 0 trackback.
Navigate
Add a trackback
Comments
Re: sarge 和 Fedore Core 3 的 stack maximum 預設得不一樣
您好:
我是個新手,最近執行同事寫好的fortran,
執行Visual Fortran也出現了stack overflow的訊息,
循著Google找到這裡,
可以請您指導如何設定Visual Fortran上的這個問題嗎?
感激不禁!
YT at 2006-07-31 16:49.
Re: sarge 和 Fedore Core 3 的 stack maximum 預設得不一樣
Visual Fortran 的 stack size 是寫在 executable image (i.e. ".exe" file) 裡的,印象中是用 linker (cl.exe) 設定。

我手上沒有合法的 VF,以上的訊息只憑印象回答。
yungyuc at 2006-08-03 19:42.
Re: sarge 和 Fedore Core 3 的 stack maximum 預設得不一樣
不好意思...我也出現stack overflow..但看不是很懂你是從哪裡做修改它的stack size...可以將修改方式告知我嗎....寄到我的信箱 92343024@cc.ncu.edu.tw
benson at 2007-10-17 11:30.
Add a comment

Your name. (required)

Your personal website. (optional)

Your email address. Will not show in page. (suggested, but optional)

Text format is "Plain Text".

Enter "Vtsid"
© hover year to navigate month: powered by django