This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Computational time for sparse cholesky (SimplicialLLT)

Tags: None
(comma "," separated)
jmogali
Registered Member
Posts
4
Karma
0
Hi ,
My question is about the computational time for sparse cholesky solver (SimplicialLLT, LDLT). In my problem, I have a sparse matrix (~8K * 8K) with only 2% fill. On a 3.6 GHz Ubuntu machine a call to SimplicialLLT takes nearly 4 minutes to compute the factorization for that matrix on a single thread.

Is this normal or am I missing some libraries or optimizations at compile time?

PS-: I use Eigen through its Java wrapper Jeigen (built around Eigen 3.2.5) and have not enabled OpenMP.

Thanks,
Jayanth
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS
Your matrix is not that sparse as this means about 160 non zero coefficients in average per column/row. This is pretty dense for a simplicial algorithm. Nonetheless, 4 minutes seems to be way too much! On my computer, calling SimplcialLDLT on a full sparse matrix (i.e., 100% fill) of size 8k x 8k takes only 97s, whereas the dense LLT<> solver takes 4.8s only.

So, make sure that the wrapper has been compiled with compiler optimizations ON, that the sparse matrix is properly filled (no explicit zeros), and that Simplicial* use the default AMD ordering method and not NaturalOrdering (third template parameter).
jmogali
Registered Member
Posts
4
Karma
0
Hi ggael,
Thanks for the reply. You said that dense cholesky takes 4.8 seconds on your system. Can you tell me whether the Cholesky factorization used multiple threads and if so how many? Also what is the processor speed ?


ggael wrote:Your matrix is not that sparse as this means about 160 non zero coefficients in average per column/row. This is pretty dense for a simplicial algorithm. Nonetheless, 4 minutes seems to be way too much! On my computer, calling SimplcialLDLT on a full sparse matrix (i.e., 100% fill) of size 8k x 8k takes only 97s, whereas the dense LLT<> solver takes 4.8s only.

So, make sure that the wrapper has been compiled with compiler optimizations ON, that the sparse matrix is properly filled (no explicit zeros), and that Simplicial* use the default AMD ordering method and not NaturalOrdering (third template parameter).
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS
Single thread, 2.6GHz core i7, but using the branch to leverage AVX and FMA acceleration.


Bookmarks



Who is online

Registered users: Bing [Bot], Google [Bot], q.ignora, watchstar