Skip to content

[WIP] Swap serial lu for MPI parallel qr using MPIQR.jl#307

Open
jwscook wants to merge 16 commits into
KineticsforTransport:masterfrom
jwscook:jc/mpiqr
Open

[WIP] Swap serial lu for MPI parallel qr using MPIQR.jl#307
jwscook wants to merge 16 commits into
KineticsforTransport:masterfrom
jwscook:jc/mpiqr

Conversation

@jwscook

@jwscook jwscook commented Jan 17, 2025

Copy link
Copy Markdown

This PR removes the lu serial solve and replaces it with an MPI block-parallel QR decomposition via MPIQR.jl. This PR only changes the code relevant to the actual solve, not the code for configuration. This means the rest of the code still referes to the lu solve, when in fact it will performing a qr solve.

@jwscook

jwscook commented Jan 21, 2025

Copy link
Copy Markdown
Author

Right now MPIQR.jl is unregistered so you have to pkg> add git@github.com:jwscook/MPIQR.jl.git

@johnomotani

Copy link
Copy Markdown
Collaborator

In case someone else wants to try this

add git@github.com:jwscook/MPIQR.jl.git

gave me a prompt asking for a private key to access Github, but just repeated the prompt when I gave it the key. Using instead

add https://github.com/jwscook/MPIQR.jl.git

just worked.

@jwscook

jwscook commented Jan 23, 2025

Copy link
Copy Markdown
Author

LU decomposition is able to exploit sparsity whereas QR decomposition is not. This means there's a huge performance gap between the two approaches. An example matrix has 2% non-zeros, hence a dense method is not going to win-out.

For reference, and thanks to @johnomotani:

LU solvers, running in serial:

sparse:
ldiv! 13.0ms
lu! 1.12s
lu 1.52s

dense:
ldiv! 102ms
lu 72.5s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants