JuliaSmoothOptimizers / LDLFactorizations.jl

Factorization of Symmetric Matrices
GNU Lesser General Public License v3.0
34 stars 12 forks source link

Reality check: How useful exactly are SuiteSparse and LDLFactorizations' LDLT? #101

Closed PetrKryslUCSD closed 2 years ago

PetrKryslUCSD commented 2 years ago

Please don't consider this a bashing of a good effort to equip Julia with a general native solver. It can be useful to some people, no doubt. But for sufficiently large problems these factorizations are hopeless.

Example: A 3D model of a rectangular cantilever block. Roughly 100k equations, 7M non zeros.

LDLFactorizations   SuiteSparse ldlt   Skyline ldlt      SuiteSparse cholesky
------------------------------------------------------------------------------
  1414 seconds        1477 seconds       331 seconds          11 seconds (!!!)

Two orders of magnitude slow down!

This is not the case of the implementation being too slow. This is a case of the algorithm not being fast enough.

My point is: we really need to get a native implementation of one of the "supernodal" factorizations. It is not enough to have access to HSL, MUMPS, or SuiteSparse in dynamically loaded libraries. It leads to duplication of memory, preventing these methods from reaching their full potential in Julia.