SciML / LinearSolve.jl

LinearSolve.jl: High-Performance Unified Interface for Linear Solvers in Julia. Easily switch between factorization and Krylov methods, add preconditioners, and all in one interface.
https://docs.sciml.ai/LinearSolve/stable/
Other
244 stars 52 forks source link

Sparse LU benchmarking #359

Open ChrisRackauckas opened 1 year ago

ChrisRackauckas commented 1 year ago

Now with https://github.com/SciML/LinearSolve.jl/issues/357 kicked off, we should create a similar benchmark in the sparse space. Maybe using https://github.com/JuliaSparse/MatrixMarket.jl to read https://math.nist.gov/MatrixMarket/formats.html#MMformat. @Wimmerer do you have matrix sets like https://sparse.tamu.edu/Gset and the NIST one (where do you even find that?) easy to just loop through? If so we can just do a timing on all of them and create a few plots. After that, we can get it onto https://docs.sciml.ai/SciMLBenchmarksOutput/stable/

j-fu commented 1 year ago

Hi, I did some sparse benchmarking:

https://j-fu.github.io/marginalia/julia/scalingtest/

IMHO performance quite a bit depends on structural info, eg 1D/2D/3D. The kron trick used in the notebook gives reasonably typical matrices for scalar FD/FV/FE.

Just gone cycling - will be back at my computer next week.

ChrisRackauckas commented 1 year ago

That would be good to add to the SciMLBenchmarks as well. Could you take the time to PR it today? Shouldn't take more than an hour. I'd still like to see other sparse matrices in a benchmarkable format in order to setup a better default algorithm, but the scaling PDE ones are definitely useful.

j-fu commented 1 year ago

Already on my smartphone... Will PR when I'll be back.

j-fu commented 1 year ago

See #365

sparselubench