- Increase the number of workers to use more physical machines -- this is not going to work if you use a "local" parpool
- Split your b in slices and solve the slices each at a time. In that case, I strongly recommend to use the decomposition object and do something like:
What is the cause of the error of "CPARDISO encountered an error in phase 22: Error code = -2."?
조회 수: 4 (최근 30일)
이전 댓글 표시
I am trying to solve a large sparse matrix equation Ax = b. A is in 700000*700000, and b is in 700000*500. I am using the distributed array to solve it.
parpool(12);
Ad = distributed(A);
bd = distributed(b);
xd = Ad\bd;
But when it ran at the line of “xd = Ad\bd;". It gives an error
Error using \ (line 53)
Internal error during sparse distributed solve: CPARDISO
encountered an error in phase 22: Error code = -2.
Error in distributed/wrapRemoteCall>iInnerWrapper (line 83)
[varargout{:}] = fcnH( varargin{:} );
Error in spmd_feval_fcn>get_f/body (line 78)
[outCell{:}] = fcnH( inCell{:} );
Why did this happen? I have searched on the net but never find a clue. And When b is "thinner", which is 700000*50. The code rans well. Is it a problem of the space of RAM? I guess so. But in that way how much RAM is sufficient? Any suggestion would be appreciated.
댓글 수: 0
채택된 답변
Oli Tissot
2020년 8월 13일
Your guess is correct, you are getting this error because there is not enough local memory available. Some workarounds would be:
decA = decomposition(Ad);
for i = 1:nSlices
% Get bdSlicei, for instance load it from a file
xdSlicei = decA \ bdSlicei;
% Use xdSlicei, for instance save it to a file
end
The question "how much RAM is sufficient?" is hard to answer a priori. For sparse matrices "\" is basically decomposing your matrix A into a product L*U where L and U are triangular but in general these matrices are denser than A. That's why you may very well be able to store A but not L and U. The amount of sparsity lost depends on the pattern of A and it is discovered during the decomposition. In practice, it is very problem dependent unfortunately...
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Parallel Computing Fundamentals에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!