作者zaguan (坏人)
看板MATLAB
标题Re: [问题] 请问有关记忆体的问题
时间Sun May 7 02:53:53 2006
※ 引述《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
1F:推 sunev:喔喔...板主m~~ 05/07 03:02
2F:推 kenneth1:非常感谢~~ 我试试看可以用吗 05/07 20:29
※ 编辑: zaguan 来自: 140.111.13.44 (06/27 18:21)