有限元求解时内存不足,增大Maximum Allocated Memory后报错
如题所示。当我定义Maximum Allocated Memory为85%时,求解时Job detail对话框中每求解一个频率的时候都会显示内存不够的提示,然后会显示转到另外的解算器去算,速度巨慢无比;如果把Maximum Allocated Memory改大,设为90%,系统会直接报错,要我检查工作参数。请问这个是什么原因?这个问题该如何解决? 呵呵,内存不够呗。如果你开启了多核并行,关掉,用单核计算,内存不够的话,会自动切换为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,你找一下,合理的计算方法和设置,通常能事半功倍的。
{:{10}:}太有用了,主任威武~~ 蜂蜜柚子茶86 发表于 2012-12-31 13:47 static/image/common/back.gif
太有用了,主任威武~~
兄弟,你每次回复,那个小老虎都好夸张…… superxjw 发表于 2012-12-29 09:41 static/image/common/back.gif
呵呵,内存不够呗。
如果你开启了多核并行,关掉,用单核计算,内存不够的话,会自动切换为Out-core Solve ...
非常感谢主任~解答的太详细了! superxjw 发表于 2012-12-31 13:48 http://www.chinavib.com/static/image/common/back.gif
兄弟,你每次回复,那个小老虎都好夸张……
呀,今天查看资料时才看见主任给我的这个回帖,真是的,怎么看到的这么晚,{:{26}:}讨厌~~人家是小姑娘啦~~哈哈哈哈 superxjw 发表于 2012-12-29 09:41 static/image/common/back.gif
呵呵,内存不够呗。
如果你开启了多核并行,关掉,用单核计算,内存不够的话,会自动切换为Out-core Solve ...
主任威武啊,正好遇到这个问题了。刚发帖~~~
页:
[1]