Re: [問題] 請問有關記憶體的問題
※ 引述《kenneth1 (柱子)》之銘言:
: 請問一下
: 我的電腦記憶體是2G
: 我現在有一個15000*15000的矩陣
: 我想對矩陣求eigenvalues
: 可是每當我電腦要讀取矩陣時
: 就會出現OUT OF MEMORY
: 可是測試矩陣到12000*12000的時候
: 他的記憶體使用量只到達1.2G
: 就連虛擬記憶體也沒使用到
: 我使用的作業系統是WINDOWS XP
: 我想問一下
: 是我的記憶體真的不夠還是XP限制使我的程式無法執行還是MATLAB的限制
: 還有假使是XP或者MATLAB的問題話
: 要如何解決
: 謝謝
以下是我以前寫的心得,請參考看看!
如果有錯誤的地方,請各位先進不吝給予指教。 :)
==
增加 MATLAB 可以使用的記憶體空間
CMHuang (CMingHuang[at]gmail.com)
歡迎散佈及修改,但請保留出處及作者。
適用環境
MATLAB 7.0(R14) on 32bit CPU and Windows XP
MATLAB 在 Windows XP 所需要的記憶體超過 1.7GB 時,
MATLAB會發生 "out of memory" 的 warning。
不管你怎麼增加 physical memory 或 virtual memory 都無法改善這個問題。
其原因在於 Windows XP 限制最多配置 2GB virtual memory 給每一個 process。
所以 MATLAB 預設在 Windwos XP 上只能使用大約 1.5GB 的記憶體(大約是 180*10^6
個 double 型態的數值)。
你可以在 MATLAB 內使用:
feature('memstats');
來察看 MATLAB 內你可以使用的記憶體空間。
但是 MATLAB 7.0 之後,開始支援 3GB switch 開機選項。
(http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx)
你可以藉著修改 C:\boot.ini 的方式,使 Windows XP 對每一個 process 的 virtual
memory 配額上限到達 3GB。
如下增加 /3GB 參數,並且重新開機。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINNT="????" /3GB
重新開機後,再使用 feature 指令查詢 MATLAB 可使用的記憶體空間增加為 2.7GB。
如果 MATLAB 可使用的記憶體空間不如你所想像的增加。
請增加你的 physical memory 或著依照 How Do I Set The Swap Space
(http://www.mathworks.com/support/tech-notes/1100/1106.html#setting_swap)
來增加可使用的 virtual memory 大小。
Reference
Memory Management Guide
(http://www.mathworks.com/support/tech-notes/1100/1106.html)
New Features in MATLAB 7 for Handling Large Data Sets
(http://www.mathworks.com/company/newsletters/digest/nov04/newfeatures.html)
Memory Support and Windows Operating Systems
(http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.217.192.28
推
05/07 03:02, , 1F
05/07 03:02, 1F
推
05/07 20:29, , 2F
05/07 20:29, 2F
※ 編輯: zaguan 來自: 140.111.13.44 (06/27 18:21)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章