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
241 stars 52 forks source link

Does `MKLLUFactorization` support Complex SparseMatrix? #421

Closed ytdHuang closed 9 months ago

ytdHuang commented 9 months ago

I tried the solver MKLLUFactorization with matrix type: SparseArrays.SparseMatrixCSC{ComplexF64, Int64} within LinearSolve v2.16.1 However, I received an error message:

MethodError: no method matching strides(::SparseArrays.SparseMatrixCSC{ComplexF64, Int64})

Does v2.16 support complex numbers for MKL and Apple Acceleation only on dense matrices?

Or did I miss something

ChrisRackauckas commented 9 months ago

MKL's sparse support is just MKLPardiso which is the PardisoJL solver, so that's wrapped but not a given binary by default. Apple Accelerate, someone would have to wrap the sparse solvers there.

ytdHuang commented 9 months ago

Thank you for the information. I thought MKLLUFactorization and MKLPardiso are slightly different and was trying to benchmark them.

ChrisRackauckas commented 9 months ago

MKLPardiso is the sparse matrix solver of MKL, just built in a different binary so that you can install the two pieces separately. But from my understanding, that's the only direct method in MKL

ytdHuang commented 9 months ago

Thank you~ Yeah, I was using MKLPardiso originally. And saw this MKLLUFactorization come up. I didn't know that the new one only works on Dense Matrix, and MKLPardiso is already the one working on Sparse Matrix.