电脑物理内存满了加内存能解决吗,电脑加了内存实际使用内存不变

首页 > 数码 > 作者:YD1662023-11-01 07:32:46

来源公众号:comsol仿真交流

内存问题

前言

今天小编在推文里总结了一下,运行内存不够时到底怎么办?

如何处理内存不足的问题?

由于内存地址空间的限制,32位系统能够访问的存储容量有理论上限(物理内存RAM和虚拟内存)。当模型需要的存储容量超过理论上限时,即会出现“Out of memory"的错误信息。因此,推荐使用64位系统,理论上能访问的存储容量没有限制。

32位操作系统(如Windows XP)理论上可以管理4GB的内存,但是大部分情况下不管设置多大的交换空间,仅仅能有效调用1.5GB容量。在32位系统中要对操作系统做一些特殊的设置才能调用更多的内存。

01

增大有效内存

以下是几种增加求解器内存调用能力的方法:

①修改Java栈大小

Java栈通常将部分可用内存(包括物理内存和虚拟内存)保留用于后处理绘图,其余的内存用于网格剖分和求解。如果“内存不足”的对话框出现在求解过程中,可以尝试减少Java栈的大小。如果出现在后处理过程中,可增加Java栈。

Windows平台,修改COMSOL34/ bin/ comsol.opts文件,Sun/Linux/Mac OSX平台,修改COMSOL34/bin/comsol文件。将MAXHEAP=256m行修改为诸如MAXHEAP=128m,需要重启COMSOL才能使设置生效。

②运行客户机—服务器模式

通常,单独服务器的内存碎片较少,所以运行客户/服务器模式可以获得更好的效果。如果希望修改COMSOL服务器的Java栈大小,修改上述的文件中MAXHEAPSERVER行。

③运行COMSOL WITH MATLAB

同样的,在COMSOL WITH MATLAB运行模式下保存mph文件时出现内存不足的情况,修改MAXHEAPSERVER行。

④32位架构的虚拟内存和交换分区

使用硬盘交换技术时,系统交换分区文件增大,并使得操作明显变得迟钝。大部分情况下,不推荐使用硬盘交换技术。Windows XP中,系统初始化2GB的虚拟内存空间供用户使用,这些存储空间还会被其他共享库同时使用以致出现碎片。在Linux、Sun和Mac中,往往可以获得3~4GB的虚拟内存空间,而且不会出现碎片。

⑤3GB开关

在Windows XP Professional和Windows 2003 Server中,COMSOL Multiphysics 可以将操作系统支配的内存缩减为1GB,从而支持3GB的虚拟内存供软件使用。这需要使用额外启动参数来启动系统,下面修改boot.ini文件的步骤,可以获得3GB虚拟内存的调用。

警告:要直接拷贝下面boot.ini文件全部的内容,因为每个系统的参数都是不一样的,涉及到/3GB的内容使用黑体字标注。如果修改分区盘符,系统将无法启动,唯有重装系统。

在Windows XP Professional 中右键点击[我的电脑],选择[高级]标签,在下边的[启动]和[恢复]中,点击[设置],在弹出的对话框中点击[编辑]。

[boot loader ]

timeont= 30

default=multi(0)disk(0)rdisk(0)partition (2)\WINNT

[operating systems ]

multi(0)disk(0)rdisk(0)partition(2)\WINNT= "????" /3GB

上面的"???? "是你的操作系统名,例如"Microsoft Windows XP Professional".

32位的Vista操作系统可以支持3GB。通过如下操作进行设置:使用管理员身份运行命令行,输人命令“bededit /set IncreaseEUserVa 3072”,通过命令“bededit/deletevalue IncreaseUserVa"关掉3GB开关。

⑥32位系统下监视内存

通常,3D文档需要极大的内存开销,COMSOL Multiphysics尝试分配大内存空间时,32位系统常常出现内存不足的问题。因为内存块有时并不是连续的,当使用任务管理器查看内存使用情况时,看到内存使用量并不高,但是总是出现内存不足的情况。Windows任务管理器的内存使用情况常常会误导人,因为它显示的仅仅是当前一部分的交换量。下面是一种更有效的查看内存总使用量的方法( Win2000、WinNT、Win XP、Windows Vista) :

a)使用Ctrl-Alt-Delete组合键打开任务管理器。

b)选择[进程]标签。

c)在[查看]菜单下选择[选择列]

d)勾上虚拟内存大小( Windows Vista:“Commit Size")。

e)在“process"中找到comsol. exe,“VM Size”显示COMSOL Multiphysics 内存使用量。

02

增加内存效率

当模型太大,物理内存RAM耗尽而使用虚拟内存的时候,计算机的计算速度会明显变慢,因为虚拟内存的速度比RAM慢很多。下面将列举几条用有限RAM来处理大模型而不降低计算速度的方法。

①运行客户端一服务器模式

当可以访向一个有强大计算功能的服务器时,较好的选择是在客户机上运行COMSOL图形用户界面,在配备有大量RAM的服务器上进行计算。这种运行模式,需要浮动版授权(floating network license) 的支持。

②在COMSOL Multiphysics 中优化模型特定问题需要的存储容量是有区别的,取决于:

a)几何网格的节点数(基本网格)。

b)形函数的类型,例如二阶拉格朗日单元,计算网格(扩展网格)的大小取决于形函数的类型以及几何网格。

c)自变量与因变量的数量。

d)系统矩阵的稀疏程度,主要取决于不同方程间耦合的自由度。几何和网格的形状也会影响系统矩阵的稀疏程度:一个在表面有很大比例的自由度的薄或者平坦的物体,比一个庞大的实体(如球体或立方体)有更稀疏的系统矩阵。

对上面最后一条的理解是,系统对内存的需求主要取决于Jacobian矩阵的非零部分,而不是自由度。例如,使用传导—对流方程和稳态理想气体定律方程进行耦合的非等温流问题,所有的5个变量(u, v, w, p, T)都出现在5个方程中(3D模型),它的Jacobian矩阵比单纯的热传导问题要充实得多。这也是在求解热辐射问题的时候需要大量内存的原因,任意一个表面的单元都创建一个满的矩阵块,使得Jacobian 很充实。

③后处理内存不足

如果在后处理中出现内存不足的现象,可以增加Java使用的堆栈的最大值。在Windows平台,修改COMSOL安装目录下bin/comsol.opts文件,Sun/Linux/Mac OSX平台修改COMSOL目录下bin/comsol 文件。将MAXHEAP = 256m中的256MB改为更大的数值,例如512MB。

④选择更合适的求解器

COMSOL Multiphysics的求解器总是将每个问题拆分成一个或多个线性系统方程的解。因此,选择直接求解器还是迭代求解器,对线性系统的计算时间和内存需求都有影响。

直接求解器使用高斯消元法(Gaussian elimination)求解线性系统,该方法对大部分问题(即使病态系统)都能够得到稳定的、可靠的解。直接求解器是缺省设置的求解器,在1D和2D问题,相对于迭代求解器,它们需要校准的次数更少,计算的速度也更快。但是,消元过程有时需要消耗大量的内存资源以及计算时间,特别是在3D问题上。

COMSOL Multiphysics缺省设置是自动检测矩阵系统是否对称,但是,线性求解器(例如UMFPACK)求解对称问题的优势不明显。注意,此处所说的对称并非指的是几何对称,而是Jacobian矩阵对称。

对于3D问题,求解器选择的缺省设置是选择迭代求解器,通常情况下,它们对内存的需求更少,而计算速度也更快。为获得更优性能,迭代求解器通常需要谨慎选择预处理器(preconditioner),以下是常用的几个预处理器:

a)几何多重网格。

b)代数多重网格。

c)SSOR矢量。

d)不完全LU。

⑤高效几何建模

通常,第一步是尽量对几何模型进行简化,例如,对于一个对称的平面,你可以选择原有模型的1/2或1/4甚至1/8来进行建模。内存的需求并不是线性增长的,而是指数增长(A*n^k,k>1),其中,A是常数,n是自由度数,k是该多项式阶数。k是个大于1的实数,大小取决于几何维度(1D、2D或者3D)和求解器的各种设定。这意味着,如果把几何模型减半,对内存的需求比原先的一半还少。需要注意到是,这里的对称,既要几何对称,又要物理学上对称。

⑥避免几何模型不必要的细节

⑦使用装配体

尝试使用[绘图]>[使用装配]和[交互式网格剖分]生成网格。在相邻求解域之间的边界上的单元节点不需要完全匹配的情况下,这种方法可以带来更大的灵活性,同时减少了单元数。

当选中迭代求解器时,网格的质量显得非常重要,如果单元质量较好,可以获得更好的收敛性和精确度。在薄层区域的三角形或四面体单元中常常出现接近180°的角,说明网格质量很低。四边形和六面体单元在某些情况下也会出现网格质量过低的现象。选择[网格]>[网格数统计]查看网格质量,正常情况下,网格质量不应该低于0.01。

⑧64位Windows Vista上的虛拟内存

当求解器使用了所有可供使用的物理内存RAM时,将使用虚拟内存对数据进行读写。在64位的Vista系统上,对虚拟内存读写过程中常常出现系统不响应的现象,在模型求解结束之前,任务管理器不可用。解决这种问题的一个办法是,使用USB闪存,需要预先开启“Readyboost"。

~ 投稿专栏 ~

“COMSOL仿真交流”微信公众号自创办以来得到了广大科研工作者和研究生的广泛关注和支持。为更好地服务仿真学习与研究,本公众号现因业务需要长期招聘供稿作者。您可发送简历到likeapoem@163.com,邮件主题请注明“姓名 供稿作者”。

欢迎“光声力热”类相关专业的科研爱好者加入“COMSOL仿真交流”团队。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.