You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Route the structured-sparse default LU to SupernodalLUFactorization (#1109)
Renames the DefaultAlgorithmChoice enum entry UMFPACKFactorization ->
SupernodalLUFactorization (and the matching DefaultLinearSolverInit
cacheval field), so the structured-sparse slot of the default
polyalgorithm is the pure-Julia supernodal left-right-looking LU.
Explicit UMFPACKFactorization() requests are unchanged; the enum entry
is not public API (users select algorithms by type, not by enum), so
this is not a breaking change.
Both sparse LU default slots now resolve to pure-Julia solvers, so the
LU side of the sparse default no longer depends on Base.USE_GPL_LIBS;
previously the non-GPL build sent structured systems to the scalar KLU
path (131-195s on poisson3d_48 vs 3.8s here). The QR side keeps its
SPQR gating.
Benchmark basis (SciMLBenchmarks SparsePDE fdmatrix sweep 1D/2D/3D to
n~164k, plus 18 SuiteSparse-collection matrices, accuracy-aware with
res <= 1e-6 required to count as a win): UMFPACK won 0 of 45 PDE-sweep
rows and 1 of 18 collection matrices (bayer01: fully unsymmetric
pattern, numerically tame - the one regime where COLAMD-style
unsymmetric ordering beats pattern symmetrization; SupernodalLU still
won its refactorization). KLU keeps banded/1D, circuits, and small n,
which is the klulike side of the split and is unaffected.
Known boundary case: large circuit matrices (scircuit, n=171k) fall on
the structured side of use_klulike_sparse_structure but KLU is ~1.9x
faster there. Density alone cannot separate circuits from 2D meshes
(torso2 is sparser than scircuit yet SupernodalLU wins it 3x); a
predicted-fill probe would fix the routing and is left as a follow-up.
GROUP=Core passes.
Co-authored-by: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
0 commit comments