QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3175|回复: 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分分钟之后显示相同的错误,错误信息如下:
    : `2 A1 D! ]$ E' O) w4 v) maaa=corrcoef(B)
      W4 w2 g9 e! b+ W  jError using  ./ 9 I1 h" T4 g% _3 |6 f
    Out of memory. Type HELP MEMORY for your options.
    6 [% p- N4 @7 N0 u1 x
    ; @2 d; e3 C( Y0 i

    : w. h  i, @7 ^  Q# U2 {3 Z( \; G) IError in cov (line 97)4 Z% l+ m9 Y" d. ?& ^4 ]' Z
        xy = (xc' * xc) / (m-1);
    3 W2 B: ~8 ?' K2 A: S
    , y& [; u: u7 Z" k9 @4 l9 p* \8 K, K
    6 ]) t( T. T/ N
    Error in corrcoef>correl (line 209)
    9 D$ v" o! Q4 Xr = cov(x);" q* ^0 \# d% I1 S% L  c  v  M& b
    ) l* x5 T3 z5 W  t2 K

    ! @1 G: N* G# N, I2 f0 v* jError in corrcoef (line 92)* t, T4 c( u# r* q0 i
       r = correl(x);
    , _* {5 s( C. D9 B怎么破,求大神!
    + @6 M; C; ~$ _" C% V( w2 ^9 p$ _, X
    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题讨论群组

    转一篇别人写的过于内存溢出问题的文章,里面介绍了一些基本的方法。
    ; i, M! A8 [8 {# M/ |3 C- Y( fMATLAB程序碰到OUT OF MEMORY的问题
    matlab程序碰到out of memory的问题真是让人崩溃的一件事情,程序是别人的,不能做大的改动,只能想办法增加内存。别人总结的可用的方法有:
    1. 增加虚拟内存:右击我的电脑—属性--高级--性能设置--高级--虚拟内存更改,按自己电脑的硬盘在自定义大小里设置数字,然后再按设置-确定,然后重启。否则更改无效。
    对XP,我发现即使增大虚拟内存到4G, matlab可用虚拟内存仍只有2G。仍然out of memory.
    . [9 _7 S% @- r1 V
    >> feature('memstats')/ B9 a4 `: h7 ^) e* p, z1 C
    Physical Memory (RAM):' u/ i8 o9 i+ |& c6 T# N
    In Use:                              611 MB (26364000)
    ' L/ l- s2 s/ ~: vFree:                               1428 MB (59418000)
      j. p6 E; s, k& FTotal:                              2039 MB (7f77c000)
    4 a/ e$ R! P7 wPage File (Swap space):3 p* @0 ?7 d# f- r; w, T; M
    In Use:                              470 MB (1d628000)  {1 {) T' i6 h7 ~$ m9 c/ r
    Free:                               4481 MB (118156000)/ v* K; a  n8 k5 D1 b& Q0 q
    Total:                              4951 MB (13577e000)2 {( U" [# w1 I. a9 [. C8 h- A
    Virtual Memory (Address Space):
    - x5 q- o; ^# j8 r( LIn Use:                              400 MB (190d3000)
    9 R9 f4 }9 A  i2 QFree:                               1647 MB (66f0d000)
    & z* h! l6 ^( n8 ]Total:                              2047 MB (7ffe0000)" e. \, X& s. }0 q1 z- w  |3 n) ?
    Largest Contiguous Free Blocks:
      y! {$ _6 f+ @1 A8 ?1. [at 20017000]                    675 MB (2a3f9000)# p7 P8 a7 V' R. A
    2. [at 4b033000]                    253 MB ( fd8d000)
    # W4 @4 I7 a: N. ^7 U: M& U3. [at 18010000]                    127 MB ( 7ff0000)8 o  O) ^2 m' T& N8 r4 o
    4. [at 68ff7000]                     64 MB ( 4009000)
    / i$ ]# J6 G' i5. [at 6d7c5000]                     56 MB ( 389b000)
    & v. A- z6 e& @8 Q- C4 C& F6. [at 62c29000]                     50 MB ( 3207000)
    ( K, K9 D, t* K8 c' V. m7. [at  d330000]                     44 MB ( 2ca0000)5 ^: \# C1 U: d
    8. [at 663dd000]                     41 MB ( 2983000)
    3 X' i( `4 z5 X" H% k9. [at 60809000]                     36 MB ( 2417000)2 h7 P* r" y: J* _" M
    10. [at 5adf7000]                     35 MB ( 2379000)& j' G( p+ }4 ]7 i0 \
    ======= ==========
    5 e0 {  r+ r8 X" {" L5 Z1385 MB (569d4000)
    对Vista系统,可能是因为我在第四步设置了命令3GB switche:可用最大虚拟内存是3G
    >> feature('memstats')
    + \3 {; H* Z1 Y6 _9 v- Y0 X! C
    % K' {1 m: `$ H$ ^4 h: H: }Physical Memory (RAM):( `" T$ [6 O. \  m6 @; v
    In Use:                             1082 MB (43a3a000)
    ' Q: J! J2 f- {/ H# X' I. z, NFree:                               1467 MB (5bb96000)
    8 e& {3 m3 u' z* TTotal:                              2549 MB (9f5d0000)" z- \5 W+ r$ f3 j! k
    Page File (Swap space):) A- T8 T' q4 {% {0 P3 T: m, B
    In Use:                             1227 MB (4cbe3000)
    ; y; N+ Y* [" `0 s# a, jFree:                               5315 MB (14c36e000)
      k# r' T, v- ^; b& hTotal:                              6543 MB (198f51000)0 Z5 u9 g" M- \' R$ A
    Virtual Memory (Address Space):
      E5 ]" e% _6 o" wIn Use:                              501 MB (1f5bf000)
    / O5 z2 V* g7 ]Free:                               2570 MB (a0a21000), z9 U! F1 p5 d7 T
    Total:                              3071 MB (bffe0000). J  Q, o5 ^  C
    Largest Contiguous Free Blocks:
    5 h% S  v- _% {: ~$ O! y1. [at 1b010000]                   1074 MB (432d0000)
    6 B" G+ S9 v: G3 m& L$ t" ^+ U2. [at 7fff0000]                   1023 MB (3ff9c000)
    0 S) P8 B* E% c6 f. ]) E3. [at 5e302000]                    227 MB ( e32e000): W8 m4 H4 |& {) @$ o
    4. [at 7c41b000]                     50 MB ( 32d5000)
    2 }! g: o" F: k6 L1 ~$ n) `5. [at 6d857000]                     30 MB ( 1e09000)' P& l* E* n2 I0 ], a  E* c
    6. [at 6f66b000]                     21 MB ( 1595000)5 H% A: g" U5 R0 ]! u/ E
    7. [at 715c3000]                     20 MB ( 149d000)
    ; `$ @+ L  \3 v0 d! h$ @8. [at 7a038000]                     18 MB ( 12f8000)
    1 y" m$ a' \! H  U2 O* l9. [at 739a6000]                     17 MB ( 114a000)3 ?- K+ I- g' ^
    10. [at 70c41000]                      9 MB (  94f000)2 C9 f# S3 f2 G& z+ X
    ======= ==========
    , D- |& @7 b: q; c& [/ S* K( g, ^" Z2494 MB (9be3b000)
    2. 采用PACK: 试了不管用
    ! ?; D( `; F# `. E  k0 L
    3. 条件允许的话采用64位系统:32位免谈
    + g$ z; d4 E+ Q8 F: n! R
    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。
    / b  I0 n' }5 C
    5. 优化程序,减少变量
    8 S- e8 S& D! v) S
    6. 如果必有必要,不要启动java虚拟机,采用matlab -nojvm启动

    # t" I( y6 s2 q7 r' a7. 关闭Matlab Server

    0 y9 ^0 s; a* j0 B" ]& i3 T+ L

    , J- m1 H) O, R7 G5 v
    - B; i. w$ {& V: A

    点评

    ℡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
    4 e8 c4 i' }6 G2 E$ a, ?2 ]$ q( l" v转一篇别人写的过于内存溢出问题的文章,里面介绍了一些基本的方法。
    ( |& ]! \, [+ E6 o& Q. XMATLAB程序碰到OUT OF MEMORY的问题m ...
    " s/ @: l- M6 g/ {# Z( P* G0 k
    十分谢谢。。
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-13 09:00 , Processed in 0.431546 second(s), 67 queries .

    回顶部