Registered Member
|
Hello,
I am solving A*X=B again where A is still super large sparse matrix. First of all, I am using SimplicialLDLT (SimplicialCholesky) to solve this system. I ran the same code on two different machines, machine A has much larger memory and more computing power than machine B. The result I got from machine A is correct, then I ran the same code on machine B, however, this time, some entries of X is wrong. I have heard about when solving a super large sparse system with direct methods like Cholesky, sometimes it will run into memory issues. I guess it happens here. A second thing I tried is to replace Cholesky with conjugate gradient. However, solver.compute(A) works fine, but solver.solve(B) always crashes and returns an error and the error seems to happen in the class SparseSelfAdjointTimeDenseMatrix. |
Moderator
|
It is true that direct methods such as SimplicialLDLT might run into memory issues, but as long as you don't get a memory allocation error (i.e. a crash !) the result should be correct.
Regarding the crash in SparseSelfAdjointTimeDenseMatrix could you try to give us more information, like the backtrace. Also, make sure you have the last version of the default branch. |
Registered users: Bing [Bot], Google [Bot], Yahoo [Bot]