QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2992|回复: 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分分钟之后显示相同的错误,错误信息如下:- V9 Y' y* u! v+ T% Z& q
    aaa=corrcoef(B)$ i# p8 _0 a& S: e; U2 y  N
    Error using  ./ ! o3 Z9 P7 \7 u+ u
    Out of memory. Type HELP MEMORY for your options.9 ~8 u: d6 g. M8 ~( R3 `$ Q% ?

    1 o) N2 p8 I. k7 F
    : h+ _( O5 k2 Y6 \( V% n4 c
    Error in cov (line 97)8 b0 s9 C, W! _- Q$ ]
        xy = (xc' * xc) / (m-1);
    - u) l0 u3 n  @$ p; ]) _. K  v
    + F0 q8 P$ [: ~8 [

    * E/ W) Z" P  L! T- d# dError in corrcoef>correl (line 209)% }& W  {# _9 V) u1 R! g: A
    r = cov(x);' P  l- v7 t# H' R+ b
    ; C: l* m8 Z' I% l9 j5 i9 Q

    , a- x" ?9 G$ H7 A1 W5 iError in corrcoef (line 92)
    8 |' ]6 X" O* c+ I   r = correl(x);5 u; v" R# E+ m+ L5 g9 {
    怎么破,求大神!' W  p  p5 N( e5 G/ H  ?* Q$ X5 q* r5 p
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    madio        

    3万

    主题

    1311

    听众

    5万

    积分

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

    [LV.Master]伴坛终老

    自我介绍
    数学中国站长

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

    群组数学建模培训课堂1

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

    群组Matlab讨论组

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

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

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

    使用道具 举报

    madio        

    3万

    主题

    1311

    听众

    5万

    积分

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

    [LV.Master]伴坛终老

    自我介绍
    数学中国站长

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

    群组数学建模培训课堂1

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

    群组Matlab讨论组

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

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

    转一篇别人写的过于内存溢出问题的文章,里面介绍了一些基本的方法。5 {. J* C( A7 l) F9 d+ u2 Y* H0 M
    MATLAB程序碰到OUT OF MEMORY的问题
    matlab程序碰到out of memory的问题真是让人崩溃的一件事情,程序是别人的,不能做大的改动,只能想办法增加内存。别人总结的可用的方法有:
    1. 增加虚拟内存:右击我的电脑—属性--高级--性能设置--高级--虚拟内存更改,按自己电脑的硬盘在自定义大小里设置数字,然后再按设置-确定,然后重启。否则更改无效。
    对XP,我发现即使增大虚拟内存到4G, matlab可用虚拟内存仍只有2G。仍然out of memory.
    ( q' A) I6 X/ P$ `
    >> feature('memstats')
    0 X8 U7 X2 ]& s. Q) F3 GPhysical Memory (RAM):
    ! u+ Z" f' j) U' H3 |7 j. P) rIn Use:                              611 MB (26364000)
    1 T0 C1 S$ `1 k" {& b/ v8 J- KFree:                               1428 MB (59418000)
    5 T  ^9 M' n# DTotal:                              2039 MB (7f77c000)8 |+ t& n$ `) @4 _6 h
    Page File (Swap space):/ ]& F8 y: r( Y6 z2 v! X
    In Use:                              470 MB (1d628000)9 I4 [. n0 h4 D  V  U: L
    Free:                               4481 MB (118156000)$ `) w9 P% P' A& F0 c7 \" q
    Total:                              4951 MB (13577e000)% `5 }* l9 k! d5 i- M3 s8 G
    Virtual Memory (Address Space):
    # u8 i3 C( I4 R; {1 B- Y& oIn Use:                              400 MB (190d3000)  v6 e$ P4 O# M' c) e( U6 P/ ^
    Free:                               1647 MB (66f0d000)
    ' S% n; J; K) u2 q  QTotal:                              2047 MB (7ffe0000)
    ' ^# I) g* o; W* l7 e; oLargest Contiguous Free Blocks:
    % ^, b1 J, U$ ^8 j6 `. @1. [at 20017000]                    675 MB (2a3f9000): ?( _, h' n, }8 s
    2. [at 4b033000]                    253 MB ( fd8d000)
    " f$ f: {: t, O' P6 i8 r& S3. [at 18010000]                    127 MB ( 7ff0000)4 [3 f8 z1 f  [5 |7 ?2 u4 N
    4. [at 68ff7000]                     64 MB ( 4009000)" x$ u2 E$ q- Z4 I3 @  x
    5. [at 6d7c5000]                     56 MB ( 389b000)
    . b" P9 z) `: `6. [at 62c29000]                     50 MB ( 3207000)
    6 O  w% v5 n. @' Y9 o7. [at  d330000]                     44 MB ( 2ca0000); F/ U" m: E7 v8 \; T) O3 y
    8. [at 663dd000]                     41 MB ( 2983000)% N' j" U8 f/ q; L  |+ ]
    9. [at 60809000]                     36 MB ( 2417000)
    : g9 s) J1 ^- O  @% A10. [at 5adf7000]                     35 MB ( 2379000)9 P9 ?. s4 B" z& S6 ~
    ======= ==========
    1 q2 a( P, `( P$ |1385 MB (569d4000)
    对Vista系统,可能是因为我在第四步设置了命令3GB switche:可用最大虚拟内存是3G
    >> feature('memstats')0 [- l7 x8 U7 p9 T% R/ x- ?

    % _: B5 r7 c* Y% B) u1 K( BPhysical Memory (RAM):; ~/ t2 M( e5 I. ^6 G
    In Use:                             1082 MB (43a3a000)1 e% [- b+ a3 }2 k
    Free:                               1467 MB (5bb96000)
    2 U% Z* a; w5 E- eTotal:                              2549 MB (9f5d0000): U8 R. R5 W, z% Q; [& m" A$ @
    Page File (Swap space):. I# S# `9 a9 r! a7 f! V
    In Use:                             1227 MB (4cbe3000)) J4 Z) B3 [$ i: G. d  N
    Free:                               5315 MB (14c36e000)
    5 _& Q/ L" o. N7 W1 W0 MTotal:                              6543 MB (198f51000)/ P+ @. u9 T8 o. g% v+ I
    Virtual Memory (Address Space):
    0 \9 I! X$ _: J) h3 `% SIn Use:                              501 MB (1f5bf000)0 z2 g0 X  N% D+ U1 A2 g
    Free:                               2570 MB (a0a21000)
    9 q  M$ c( m: Y  V- q1 MTotal:                              3071 MB (bffe0000). b3 Z+ V! x9 z; ?( A9 m7 A( P! Z
    Largest Contiguous Free Blocks:7 G2 u4 q: k4 A3 I( j
    1. [at 1b010000]                   1074 MB (432d0000)  G$ \5 r3 R; Z
    2. [at 7fff0000]                   1023 MB (3ff9c000)( }8 P' s( k; P& n/ F8 \. v
    3. [at 5e302000]                    227 MB ( e32e000)
    ; G; h$ I* Y& i! x4. [at 7c41b000]                     50 MB ( 32d5000)
      r+ R: X1 H1 {5 T' y* X" f3 @5. [at 6d857000]                     30 MB ( 1e09000)8 g" e( R, T- s+ J: P$ D6 O
    6. [at 6f66b000]                     21 MB ( 1595000)  ]" M* O  e2 m5 K' M
    7. [at 715c3000]                     20 MB ( 149d000)
    # t% u: t4 q$ _3 b$ Q- j- ?& {8. [at 7a038000]                     18 MB ( 12f8000); I2 r; b1 u( c
    9. [at 739a6000]                     17 MB ( 114a000)
    ; ~- ?* J. [9 r; k  @% ^3 R* p7 L10. [at 70c41000]                      9 MB (  94f000)) y. w' y5 e3 o
    ======= ==========( c$ B0 a- B6 S5 N7 P
    2494 MB (9be3b000)
    2. 采用PACK: 试了不管用
      {# u- s- ]- H* A. G* x; }0 i+ }
    3. 条件允许的话采用64位系统:32位免谈

    : a, ?! u  T! n4. 采用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。

    . ]3 j+ E% L0 k  e/ y( l5. 优化程序,减少变量

    1 H$ ?+ S" e8 T" [& o% V4 }6 v6. 如果必有必要,不要启动java虚拟机,采用matlab -nojvm启动

    * k" Z6 E  t( E( _+ K' S: Y0 C' g7. 关闭Matlab Server

    % g6 i4 @% W# c5 P* Y( p2 H2 n% }
    , S0 t0 z, a1 ?9 G; Y/ k) x
    + w$ Z2 \% D' S% B7 B: z
    . K3 C; B" V1 U4 ?* u  @

    点评

    ℡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
    . W  N/ y$ x% }  u( ^转一篇别人写的过于内存溢出问题的文章,里面介绍了一些基本的方法。
    / D/ Q/ s7 l: M- }3 V4 d* Q# fMATLAB程序碰到OUT OF MEMORY的问题m ...

    8 ?- s/ d6 e1 _( _, p2 s+ W十分谢谢。。
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-8-7 21:54 , Processed in 1.037839 second(s), 71 queries .

    回顶部