[心得] Intel Fortran遇到stack overflow

看板Fortran作者 (愛微醺的感覺)時間12年前 (2012/04/03 14:29), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串1/1
在Intel Fortran下遇到stack overflow的原因應該有好幾種, 若是在編譯過程無任何錯誤,且發生在陣列宣告較大時才發生,錯誤訊息: severe(170): Program Exception - stack overflow 很可能是需要調整環境某些參數,類似此問題可能過去有人提出怎做, 不過是在Visual Fortran環境下的,最近剛好也遇到, 提供Intel Fortran環境下的更改說明: 到畫面功能表列 Project -> Console1 Properties ^^^^^^^^ 此處可能因人而異,如Console2、... 左側 Configuration Properties -> Linker -> System 裡面有兩項 Stack Reserve Size與Stack Commit Size,預設應看到是0, 變更為 0x400000 即 4M,這樣應可解決。 查詢一些討論,似乎是程式bug或撰寫方法不佳,不然一般預設stack應是足夠, 以自己遇到狀況是,在Intel Fortran下有問題需調整, 但在Visual Fortran卻正常執行, 其他就有待高手說明、補完或指正,如果說是撰寫程式上的瑕疵,不知該如何避免?! ※ 編輯: bmw520i 來自: 140.116.38.161 (04/03 14:42)

04/03 15:23, , 1F
我測試過IVF 可以用到10G以上的記憶體 但有幾支程式就是會
04/03 15:23, 1F

04/03 15:24, , 2F
出現上述的情形 我猜可能是程式哪邊出了問題導致
04/03 15:24, 2F

04/03 15:35, , 3F
是在stack預設值狀態下嗎?
04/03 15:35, 3F

04/03 15:46, , 4F
另外程式執行中,工作管理員看到使用記憶體的量是正確嗎?
04/03 15:46, 4F

04/03 15:46, , 5F
因為往往由那邊去看執行中程式佔用的記憶體沒想像多
04/03 15:46, 5F

04/03 17:25, , 6F
我stack沒特別去改 應該是default的狀態
04/03 17:25, 6F

04/03 17:26, , 7F
我是用簡單的程式去測試 慢慢加大矩陣 在工作管理員可以
04/03 17:26, 7F

04/03 17:27, , 8F
看到有使用到10G以上
04/03 17:27, 8F

04/03 19:06, , 9F
我都直接把SYSTEM裡的STACK SIZE改成100000000...
04/03 19:06, 9F
文章代碼(AID): #1FUfYte2 (Fortran)
文章代碼(AID): #1FUfYte2 (Fortran)