作者bmw520i (愛微醺的感覺)
看板Fortran
標題[心得] Intel Fortran遇到stack overflow
時間Tue Apr 3 14:29:08 2012
在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)
1F:→ biggun:我測試過IVF 可以用到10G以上的記憶體 但有幾支程式就是會 04/03 15:23
2F:→ biggun:出現上述的情形 我猜可能是程式哪邊出了問題導致 04/03 15:24
3F:→ bmw520i:是在stack預設值狀態下嗎? 04/03 15:35
4F:→ bmw520i:另外程式執行中,工作管理員看到使用記憶體的量是正確嗎? 04/03 15:46
5F:→ bmw520i:因為往往由那邊去看執行中程式佔用的記憶體沒想像多 04/03 15:46
6F:→ biggun:我stack沒特別去改 應該是default的狀態 04/03 17:25
7F:→ biggun:我是用簡單的程式去測試 慢慢加大矩陣 在工作管理員可以 04/03 17:26
8F:→ biggun:看到有使用到10G以上 04/03 17:27
9F:推 callmei:我都直接把SYSTEM裡的STACK SIZE改成100000000... 04/03 19:06