- 增加工人使用更多的物理机器的数量,这是不打算如果你使用“本地”parpool工作
- 分裂b片和解决片各一次。在这种情况下,我强烈建议使用分解object和做一些类似:
错误的原因是什么”阶段22 CPARDISO遇到一个错误:错误代码= 2。”?
1视图(30天)
显示旧的评论
我试图解决大型稀疏矩阵方程Ax = b。在700000 * 700000,和b是700000 * 500。我用分布式阵列来解决这个问题。
parpool (12);
广告=分布式(A);
bd =分布式(b);
xd = \ bd广告;
但当它跑线的“xd =广告\ bd;”。它给了一个错误
错误使用\(53)行
内部误差在稀疏分布式解决:CPARDISO
遇到一个错误在阶段22:错误代码= 2。
错误在分布式/ wrapRemoteCall > iInnerWrapper(第83行)
[varargout {}): = fcnH(变长度输入宗量{:});
错误在spmd_feval_fcn > get_f /身体(第78行)
[outCell {}): = fcnH (inCell {:});
为什么会这样?我有在网上搜索但找不到线索。当b“薄”,这是700000 * 50。代码运行得很好。这是一个空间的内存的问题吗?我想是这样。但在这样RAM是充分的多少?任何建议,我们将不胜感激。
0评论
接受的答案
奥利天梭
2020年8月13日
你的猜测是正确的,你得到了这个错误,因为当地没有足够的可用内存。一些临时的解决方法是:
十=分解(广告);
为我= 1:nSlices
%得到bdSlicei,例如从文件中加载它
xdSlicei =十\ bdSlicei;
% xdSlicei使用,例如将其保存到一个文件中
结束
问题“多少RAM足够吗?”很难回答一个先天的。稀疏矩阵“\”基本上是将你的矩阵分解为一个产品L * U L和三角,但通常这些矩阵密度比A。这就是为什么你很可能能够存储一个但不是L和美国稀疏丢失的数量取决于和发现的模式分解。在实践中,它非常依赖问题,不幸的是…