QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3165|回复: 3
打印 上一主题 下一主题

与大稀疏矩阵的计算有关的内存错误问题

[复制链接]
字体大小: 正常 放大

13

主题

18

听众

2618

积分

升级  20.6%

  • TA的每日心情
    奋斗
    2015-4-16 19:40
  • 签到天数: 101 天

    [LV.6]常住居民II

    社区QQ达人

    群组2013年美赛优秀论文解

    群组2014年美赛冲刺培训

    群组物联网工程师培训

    跳转到指定楼层
    1#
    发表于 2013-10-1 20:02 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
        从文件导入数据建立一个大于10000*5000的稀疏矩阵,然后用corrcoef()计算相关系数时,刚开始就不能跑起来,直接显示 out of memort,后来通过开启3G模式之后可以跑起来,但是跑了大概40分分钟之后显示相同的错误,错误信息如下:* G8 f+ J5 T% g- d) `% k
    aaa=corrcoef(B)
    % X8 Z) D. k2 d: AError using  ./
    5 `3 c- `( _4 T% A5 wOut of memory. Type HELP MEMORY for your options.
    7 B" Z& k; m# U# ~3 [" U. Q& V  A: {! S" t7 G0 V

    + K8 t3 W* d. S' s' g9 C5 W/ nError in cov (line 97)/ o" c# M9 v* G# ^# G
        xy = (xc' * xc) / (m-1);! Y  c* T! H6 ?9 G4 @: _0 G. Y

    * u9 S* D' K9 A( W
    ) }& K* t7 u* \2 M; w
    Error in corrcoef>correl (line 209)
    % @3 G. t  a0 ]( @" F/ k9 P- nr = cov(x);9 m; r$ F4 n+ a6 {
    ; g2 W8 U: ~) r4 n4 Q+ O7 }
    ( y9 P' i/ K4 N  e6 n+ `
    Error in corrcoef (line 92)
    ( Z& m# R' A/ \   r = correl(x);: M+ y# }7 ~% A' u( n3 a% {  x
    怎么破,求大神!
    : Q7 B% @  d9 r  P  N- w
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    madio        

    3万

    主题

    1312

    听众

    5万

    积分

  • TA的每日心情
    奋斗
    2024-7-1 22:21
  • 签到天数: 2014 天

    [LV.Master]伴坛终老

    自我介绍
    数学中国站长

    社区QQ达人 邮箱绑定达人 优秀斑竹奖 发帖功臣 风雨历程奖 新人进步奖 最具活力勋章

    群组数学建模培训课堂1

    群组数学中国美赛辅助报名

    群组Matlab讨论组

    群组2013认证赛A题讨论群组

    群组2013认证赛C题讨论群组

    这个问题我觉得既然3G模式可以跑起来,说明这个矩阵可以放进去了,但是跑了一段时间出现内存不足,说明中间变量过多了,我建议你不要用这个函数来求相关系数矩阵,毕竟这个相关系数矩阵数学上的算法很明确,你编一个循环程序来计算,每次只调用两个向量,用完了这个空间就被下一组向量占用,这样会省很大的空间。不要只依赖函数
    数学建模社会化
    回复

    使用道具 举报

    madio        

    3万

    主题

    1312

    听众

    5万

    积分

  • TA的每日心情
    奋斗
    2024-7-1 22:21
  • 签到天数: 2014 天

    [LV.Master]伴坛终老

    自我介绍
    数学中国站长

    社区QQ达人 邮箱绑定达人 优秀斑竹奖 发帖功臣 风雨历程奖 新人进步奖 最具活力勋章

    群组数学建模培训课堂1

    群组数学中国美赛辅助报名

    群组Matlab讨论组

    群组2013认证赛A题讨论群组

    群组2013认证赛C题讨论群组

    转一篇别人写的过于内存溢出问题的文章,里面介绍了一些基本的方法。
    ) w5 V# H  A1 qMATLAB程序碰到OUT OF MEMORY的问题
    matlab程序碰到out of memory的问题真是让人崩溃的一件事情,程序是别人的,不能做大的改动,只能想办法增加内存。别人总结的可用的方法有:
    1. 增加虚拟内存:右击我的电脑—属性--高级--性能设置--高级--虚拟内存更改,按自己电脑的硬盘在自定义大小里设置数字,然后再按设置-确定,然后重启。否则更改无效。
    对XP,我发现即使增大虚拟内存到4G, matlab可用虚拟内存仍只有2G。仍然out of memory.' J. n6 h% S; \; Y
    >> feature('memstats')
    , R% N$ X0 C& S. @( MPhysical Memory (RAM):
    1 `0 F5 u0 k7 gIn Use:                              611 MB (26364000)
    . [/ ^# i0 y$ k+ q- wFree:                               1428 MB (59418000)9 c& x4 r7 ]. L
    Total:                              2039 MB (7f77c000)
    . m2 j$ X, v1 r& T( ZPage File (Swap space):$ J5 b% j/ }% p
    In Use:                              470 MB (1d628000)
    1 j% W7 k& V6 N9 d6 `4 p7 jFree:                               4481 MB (118156000)$ v* u/ Z" J$ K7 S* \2 Q8 e
    Total:                              4951 MB (13577e000)
      V7 B/ W! x9 ~5 P& fVirtual Memory (Address Space):
    ' F3 e% v9 B! \$ {  }In Use:                              400 MB (190d3000); x$ }7 I( W' x4 h2 p" v
    Free:                               1647 MB (66f0d000)" O  d5 t2 Y/ @. o
    Total:                              2047 MB (7ffe0000)5 e+ c# `6 F6 }$ a( f9 e, F% z; l
    Largest Contiguous Free Blocks:4 ]; L* \- A& ~2 x  R$ g
    1. [at 20017000]                    675 MB (2a3f9000)
    * F! m$ `* s0 }- }- L- ?2. [at 4b033000]                    253 MB ( fd8d000)
    , M0 w. i' t' S8 V5 h# X3. [at 18010000]                    127 MB ( 7ff0000)
    # ^) r6 e( C- |5 O! s0 |4. [at 68ff7000]                     64 MB ( 4009000)
    2 r" b$ I  W" a" s/ ?+ r, }- [5. [at 6d7c5000]                     56 MB ( 389b000)
    / F8 i- W0 G, E- R6. [at 62c29000]                     50 MB ( 3207000)
    # Y7 m) P+ v' `& k7. [at  d330000]                     44 MB ( 2ca0000)
    + o/ [$ e& R" r8 Y% W7 }1 P8. [at 663dd000]                     41 MB ( 2983000)0 V3 Y& ]: F- F5 g' J' j# k+ h
    9. [at 60809000]                     36 MB ( 2417000)2 A7 K* y" x, ?$ L4 n$ J" y
    10. [at 5adf7000]                     35 MB ( 2379000)) j/ D( o$ F, W# D
    ======= ==========! [4 |& U0 y1 a4 F0 ^7 c
    1385 MB (569d4000)
    对Vista系统,可能是因为我在第四步设置了命令3GB switche:可用最大虚拟内存是3G
    >> feature('memstats'): h& v# M/ _* Q1 @
    7 [6 m! M7 X# V; _: G+ E& b
    Physical Memory (RAM):2 ^( K9 q4 p3 g0 v
    In Use:                             1082 MB (43a3a000)# g; v* B% u  e; v0 }! k2 M
    Free:                               1467 MB (5bb96000)
    & U  w( H+ ]5 yTotal:                              2549 MB (9f5d0000)4 O8 \8 n: u: w4 y
    Page File (Swap space):
    1 K) x6 @8 t- K- I% HIn Use:                             1227 MB (4cbe3000)
    1 [& q0 A& I$ O) \/ ?4 d, I* OFree:                               5315 MB (14c36e000)2 ?6 I9 u8 }* @: T; a3 Y2 O
    Total:                              6543 MB (198f51000)! {% O1 l& p& Y3 ?4 G; U' {- m" ?' m
    Virtual Memory (Address Space):
    + ~" O" [  r+ @% b" d% J0 gIn Use:                              501 MB (1f5bf000)4 N/ Z9 W: h& [1 z
    Free:                               2570 MB (a0a21000)" R% H% I. R" K
    Total:                              3071 MB (bffe0000)
    + x- ~; g- D( ]1 V. _! q( \' fLargest Contiguous Free Blocks:7 o5 R( G! I) p% X8 d/ p
    1. [at 1b010000]                   1074 MB (432d0000)
    ) ]$ c* R& }* R- \2. [at 7fff0000]                   1023 MB (3ff9c000)/ o% ?% Q8 S% D* I0 ?# x9 R
    3. [at 5e302000]                    227 MB ( e32e000)
    7 I! H! {$ `& ]% ^4. [at 7c41b000]                     50 MB ( 32d5000)& }; o: M$ b% |% [/ E" E2 y
    5. [at 6d857000]                     30 MB ( 1e09000)
    - `- `; s9 M$ b( C" i0 j) Z- G7 n6. [at 6f66b000]                     21 MB ( 1595000)  I! Y, e0 _; B& h
    7. [at 715c3000]                     20 MB ( 149d000)
    + v  g) y9 f1 W8 E6 b) x" C( d  f8. [at 7a038000]                     18 MB ( 12f8000)
    % s: f7 c( A/ o0 ^9 i  G9. [at 739a6000]                     17 MB ( 114a000)
    8 z% Q% c" q* y3 S3 ~9 [; V10. [at 70c41000]                      9 MB (  94f000)
    " ?6 t- M) b8 ], ~======= ==========
    / h( c' r  ?. E7 z2494 MB (9be3b000)
    2. 采用PACK: 试了不管用
    7 t$ o0 H* G* T: C$ X! r! U
    3. 条件允许的话采用64位系统:32位免谈
    7 D3 z. `6 A9 s
    4. 采用3GB switch: 由于32位 Windows 操作系统的限制,每个进程只能使用最多 2GB 的虚拟内存地址空间,因此 Matlab 的可分配内存也受到相应的限制。Matlab 7.0.1 引进了新的内存管理机制,可以利用 Windows 的 3GB 开关,使用 3GB 开关启动的 Windows 每个进程可以在多分配 1 GB 的虚拟地址空间。我的笔记本是vista系统,台式机是XP系统。
    1)对vista系统:Bcdedit 位于X:\Windows\system32\ "X:"为安装Vista的盘符,利用Bcdedit命令,可以自定义你的Vista启动管理项。使用命令: BCDEdit /set increaseuserva 3072 ,DOS界面显示操作成功,注意虚拟内存应设成大于3G,否则内存分配<3G。可在matlab里使用 system_dependent memstats或feature('memstats')命令查询。
    2)对XP:右键单击我的电脑--->>属性--->>高级--->>启动和故障修复--->>设置--->>编辑--->>将最后一行multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" 复制,在下一行粘贴,并将粘贴一行改为: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional with 3GB switche" /3gb --->>存储--->>确定--->>重新启动计算机--->>在显示选择操作系统时,选择带有 3GB switche的一项--->>打开matlab。可是我设置完重启计算机,选择3GB switche的一项时,显示lsass.exe 应用程序错误,无法登陆!看来我的XP系统不支持3GB switche模式登录,因此matlab的可用虚拟内存不会超过2G。
    8 j8 t* \/ Z) [/ O( O+ k$ [
    5. 优化程序,减少变量

    % Z+ {, G0 `) U8 `' f6 P2 C6. 如果必有必要,不要启动java虚拟机,采用matlab -nojvm启动
    $ v: r7 d$ i. @6 Z$ V% w
    7. 关闭Matlab Server
    ; `+ t% C* ?+ ]% n; G& m0 H1 Q
    2 S7 P9 W: l- Y, n8 R; k
    % ]5 g: ^+ c  v/ a* K# e

    9 ?6 B  M7 e  Q% d+ _

    点评

    ℡oメ心情浪子o  十分谢谢。。  详情 回复 发表于 2013-10-7 16:12
    数学建模社会化
    回复

    使用道具 举报

    13

    主题

    18

    听众

    2618

    积分

    升级  20.6%

  • TA的每日心情
    奋斗
    2015-4-16 19:40
  • 签到天数: 101 天

    [LV.6]常住居民II

    社区QQ达人

    群组2013年美赛优秀论文解

    群组2014年美赛冲刺培训

    群组物联网工程师培训

    madio 发表于 2013-10-3 18:16 ( B4 X5 N/ a5 s, d
    转一篇别人写的过于内存溢出问题的文章,里面介绍了一些基本的方法。
    : z# \6 A7 G4 @/ o5 L+ aMATLAB程序碰到OUT OF MEMORY的问题m ...
    0 R7 B  U" |: E, C3 M9 `: w
    十分谢谢。。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-10 13:41 , Processed in 0.449068 second(s), 68 queries .

    回顶部