QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3163|回复: 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分分钟之后显示相同的错误,错误信息如下:; R0 {4 y) ~) O; |' ~0 G1 J. x; x9 m
    aaa=corrcoef(B)
    0 T5 \5 ~. j+ Q% f( u) I. g5 dError using  ./ , _/ |$ J2 l/ T8 X$ M; P0 G' \; R
    Out of memory. Type HELP MEMORY for your options.
    " Y: |& \" m7 D! @3 l  U5 _9 |: o
    9 t  _" `9 c9 V. {' ?2 M
    Error in cov (line 97)6 i3 V' ^" I7 z7 s# G8 l
        xy = (xc' * xc) / (m-1);
    % e! w8 z8 _5 f' o7 h
    ( |0 M9 o5 Y* }; l" C7 _
    ( l7 G$ @, R( n+ b8 V
    Error in corrcoef>correl (line 209)
    ( D3 d$ v' d% v$ z" y" V0 Dr = cov(x);, p* F$ ]4 O5 k3 X% K" X8 t

    + M) N4 q' |/ X
    " G" A) K( g$ g
    Error in corrcoef (line 92)/ j6 P9 D! w) w, \& U
       r = correl(x);5 H5 v) [: q1 ]4 w8 t: g9 D
    怎么破,求大神!
    ' f" Y+ S+ \5 L
    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题讨论群组

    转一篇别人写的过于内存溢出问题的文章,里面介绍了一些基本的方法。$ h# \  V5 q( k; q
    MATLAB程序碰到OUT OF MEMORY的问题
    matlab程序碰到out of memory的问题真是让人崩溃的一件事情,程序是别人的,不能做大的改动,只能想办法增加内存。别人总结的可用的方法有:
    1. 增加虚拟内存:右击我的电脑—属性--高级--性能设置--高级--虚拟内存更改,按自己电脑的硬盘在自定义大小里设置数字,然后再按设置-确定,然后重启。否则更改无效。
    对XP,我发现即使增大虚拟内存到4G, matlab可用虚拟内存仍只有2G。仍然out of memory.
    . ?1 ]9 A3 Z9 |$ |$ S
    >> feature('memstats')* H2 j* G4 m5 {6 h! b" Z
    Physical Memory (RAM):
    ) y! M7 i/ U1 Y, D: n+ z& Z7 T) _In Use:                              611 MB (26364000)
    2 T! Y8 R+ J7 J/ kFree:                               1428 MB (59418000)
    8 }) r: Y% s, }/ W9 M% |Total:                              2039 MB (7f77c000), ]! P7 H8 e3 z. v
    Page File (Swap space):
    8 D2 Z' x/ E) H, H1 y$ R' e. ]" LIn Use:                              470 MB (1d628000), ~/ E2 C% R9 w5 t! C/ g6 @. i
    Free:                               4481 MB (118156000)8 k0 S: T, g) X( ], j- ^: W, h7 W! |# i
    Total:                              4951 MB (13577e000)7 a5 s6 M& q1 `& q- ^, u+ `
    Virtual Memory (Address Space):
    ! Y+ |( z5 J  U1 d. u! ~In Use:                              400 MB (190d3000)
    9 r1 q7 ?$ F: m! i6 m3 `; \Free:                               1647 MB (66f0d000)/ s: _* M0 `* i3 d( ?. v# D
    Total:                              2047 MB (7ffe0000)
    " H+ X/ o8 \2 w" l$ sLargest Contiguous Free Blocks:
    , X$ a% K$ S( m4 y; d# R  I1. [at 20017000]                    675 MB (2a3f9000)2 J9 k5 l6 b2 [0 j
    2. [at 4b033000]                    253 MB ( fd8d000)
    " @% s( f. X* o! y1 r! @! d, t- w3. [at 18010000]                    127 MB ( 7ff0000)
    / U8 u- A5 [& ]' K9 o+ C. m- v- F" b4. [at 68ff7000]                     64 MB ( 4009000)
    ; _: a) E. c! L8 b# P5. [at 6d7c5000]                     56 MB ( 389b000); C0 W' n% k/ p8 k7 R' k+ H
    6. [at 62c29000]                     50 MB ( 3207000)- F7 b4 R2 }  d% n# D
    7. [at  d330000]                     44 MB ( 2ca0000)
    9 d0 [: |: Y9 l/ I8. [at 663dd000]                     41 MB ( 2983000)" Q/ X* K2 I+ [" Q+ p3 H. P5 P0 D
    9. [at 60809000]                     36 MB ( 2417000)
    6 \8 X$ c  i+ w) B10. [at 5adf7000]                     35 MB ( 2379000)
    - `0 x  D4 C% Z1 {======= ==========
    + ?* E* }8 @: [; L2 H& \1385 MB (569d4000)
    对Vista系统,可能是因为我在第四步设置了命令3GB switche:可用最大虚拟内存是3G
    >> feature('memstats')
    ) [/ s& m. Z. W; w9 k( {8 C; F3 T. D0 H) z0 g  |
    Physical Memory (RAM):
    ! }: v4 k; w& y) l* _& o9 lIn Use:                             1082 MB (43a3a000)) v3 F* V  l0 U2 N" A
    Free:                               1467 MB (5bb96000)( V- {8 V$ T4 \3 b+ y/ {
    Total:                              2549 MB (9f5d0000)2 I- q* W. g% U3 K* s
    Page File (Swap space):
    0 X" Y) ~) w1 c/ oIn Use:                             1227 MB (4cbe3000)
    ) Q" L/ z0 S8 n4 ]Free:                               5315 MB (14c36e000)% P) B( y( W( D# W+ _7 }
    Total:                              6543 MB (198f51000)
    7 l1 P! }: s  ]0 Q8 W6 kVirtual Memory (Address Space):
    6 b6 ^2 U$ X* q( ]In Use:                              501 MB (1f5bf000)
    4 A& F$ R- K0 I: P# C4 ^  w/ ^Free:                               2570 MB (a0a21000)/ I4 A2 P' }; d6 S0 D1 D
    Total:                              3071 MB (bffe0000)
    & a- Z9 V: h6 I1 K8 ?. ~Largest Contiguous Free Blocks:# o* g6 R- \: R# @6 Z8 c
    1. [at 1b010000]                   1074 MB (432d0000)* S+ ]7 p; c5 `0 D  o! w" u0 ^
    2. [at 7fff0000]                   1023 MB (3ff9c000)& {5 j/ K, \. U. u2 \. p
    3. [at 5e302000]                    227 MB ( e32e000)
    % F4 s2 w" }8 Y! g0 a$ h4. [at 7c41b000]                     50 MB ( 32d5000)
    0 _- h/ L3 C+ t2 R) [6 `- }5. [at 6d857000]                     30 MB ( 1e09000)
    : ^2 q# J4 c! U7 z3 H4 }7 A6. [at 6f66b000]                     21 MB ( 1595000)0 J. W" E  e5 j
    7. [at 715c3000]                     20 MB ( 149d000)
    ( U8 l$ w3 M* B8. [at 7a038000]                     18 MB ( 12f8000)
    + y! `* g+ }: z9. [at 739a6000]                     17 MB ( 114a000)/ u7 Q' o+ r# X
    10. [at 70c41000]                      9 MB (  94f000)8 U) B5 Z) Z/ D$ _+ d* e0 i
    ======= ==========
    2 v3 s3 d) \5 |0 p! F: |+ D* g2494 MB (9be3b000)
    2. 采用PACK: 试了不管用
    3 C8 p& e" ^+ J: x5 Y3 W' O% U* ~
    3. 条件允许的话采用64位系统:32位免谈
    3 q" {" e1 O% b. K/ p; 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。

    / s2 l& O5 _' S6 j9 h0 |8 n! K5. 优化程序,减少变量
    ( u8 A, M" e8 J9 r6 }
    6. 如果必有必要,不要启动java虚拟机,采用matlab -nojvm启动

    0 l8 f2 d+ m$ o: h) H$ Q9 l" \; c' n7. 关闭Matlab Server
    : Z+ n- p; O# C0 m* d9 ~
    & d/ S1 u" r' E! t# S# [- d

    7 D% N/ X' D& ]  E, V, q9 ]( n( I1 @) s

    点评

    ℡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
    9 H5 f# o4 k5 F转一篇别人写的过于内存溢出问题的文章,里面介绍了一些基本的方法。- g2 W; A, H! S5 L8 S, z
    MATLAB程序碰到OUT OF MEMORY的问题m ...
    + L  q0 S# `; T# Y6 u
    十分谢谢。。
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-10 11:53 , Processed in 0.477878 second(s), 70 queries .

    回顶部