[求助]如何避免mathematica用光memory无法继续计算?
mathematica吧
全部回复
仅看楼主
level 3
__Aries__ 楼主
在我希望计算很多coupled ODE时,在到了一定数量后mathematica不能再算出solution,而是给出:no more memory available. Mathematica kernel has shut down. Try quitting other applications and then retry.
我试着在另一台电脑 (quad-core with 16GB of memory)上运行同样的程序,但是也没有得到很好的结果。
我试着加了$HistoryLength = 0,并且试图用Share[]来降低memory的占用。
还有什么可以使mathematica算更多方程并且不会死掉的么?
谢谢
2013年08月05日 17点08分 1
level 8
应该是重写程序,采用不消耗那么多内存的方式来计算,或者运行前评估一下你的程序需要的内存,再放到有足够内存的机器上去算
2013年08月06日 01点08分 2
请问如何在运行前评估程序所需内存呢?如果我必须要同时解10^3*10^3的coupled ODE,有什么方式可以消耗较少内存么?
2013年08月06日 06点08分
回复 __Aries__ :算解析的还是数值的呢?
2013年08月06日 06点08分
回复 草红样 :数值。解析的恐怕算不出来吧?
2013年08月06日 06点08分
level 3
__Aries__ 楼主
事实证明解那个方程组确实需要很多memory,根据建议我打算在一个可以调动12个8GB电脑的服务器上使用parallel计算方式来使我想要的变成可能。但是我并不确定我得这么一个巨大的方程可不可以分到不同的kernel中运行,因为每一个方程都是coupled,不同成分之间是相互关联的,似乎不太好分。
2013年08月06日 19点08分 3
1