声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1504|回复: 7

[Virtual.Lab] 有限元求解时内存不足,增大Maximum Allocated Memory后报错

[复制链接]
发表于 2012-12-28 23:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
如题所示。当我定义Maximum Allocated Memory为85%时,求解时Job detail对话框中每求解一个频率的时候都会显示内存不够的提示,然后会显示转到另外的解算器去算,速度巨慢无比;如果把Maximum Allocated Memory改大,设为90%,系统会直接报错,要我检查工作参数。请问这个是什么原因?这个问题该如何解决?
回复
分享到:

使用道具 举报

发表于 2012-12-29 09:41 | 显示全部楼层
呵呵,内存不够呗。
如果你开启了多核并行,关掉,用单核计算,内存不够的话,会自动切换为Out-core Solver,利用硬盘空间作为虚拟内存的,内存足够的时候,使用In-Core Solver。如果你一个核需要的内存是1.5G,如果你开双核的话,就是3G,如果你开四核的话,就需要6G内存。所以,一般来说开多核并行需要内存足够多,当然,VL也有对多核计算一个频率点的方法,比如四个核同时对一个频率点计算,仅需要1.5G内存。(好像是Multi Process Matrix Level方式,你查一下帮助文档,里面很详细的)另外,在这里提一下,In-Core Solver的求解速度平均是Out-core Solver求解速度的4-5倍,所以,也可以看出内存在计算中的重要性。另外,如果都使用单核了,还显示内存不足,还有办法!就是使用迭代求解器,在下图中的Solver Parameters中的Iterative Solver。迭代求解器QMR的最大好处就是需要的计算时间和内存比Direct Solver低很多,算得快,内存用得少,一般来说需要的计算时间和计算资源是直接求解器的1/5到1/10,但是缺点就是可能出现数值不稳定,计算的时候发散,不收敛报错(PS:VL的迭代求解器我经常用,其实非常稳定的,至今还没有发现过报错的现象,所以我个人经常很喜欢QMR)。这些内容楼主可以在帮助文档中找到的,主题好像是叫Which Solver to Choose,你找一下,合理的计算方法和设置,通常能事半功倍的。
1.JPG
回复 支持 1 反对 0

使用道具 举报

发表于 2012-12-31 13:47 | 显示全部楼层
太有用了,主任威武~~
发表于 2012-12-31 13:48 | 显示全部楼层
 楼主| 发表于 2012-12-31 16:08 | 显示全部楼层
superxjw 发表于 2012-12-29 09:41
呵呵,内存不够呗。
如果你开启了多核并行,关掉,用单核计算,内存不够的话,会自动切换为Out-core Solve ...

非常感谢主任~解答的太详细了!
发表于 2013-2-27 03:16 | 显示全部楼层
superxjw 发表于 2012-12-31 13:48
兄弟,你每次回复,那个小老虎都好夸张……


呀,今天查看资料时才看见主任给我的这个回帖,真是的,怎么看到的这么晚,讨厌~~人家是小姑娘啦~~哈哈哈哈
发表于 2013-7-26 21:29 | 显示全部楼层
superxjw 发表于 2012-12-29 09:41
呵呵,内存不够呗。
如果你开启了多核并行,关掉,用单核计算,内存不够的话,会自动切换为Out-core Solve ...

主任威武啊,正好遇到这个问题了。刚发帖~~~
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 00:08 , Processed in 0.074612 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表