Skip to content

Add ElementalJL solver wrapper#908

Open
AJ0070 wants to merge 7 commits intoSciML:mainfrom
AJ0070:fix/47
Open

Add ElementalJL solver wrapper#908
AJ0070 wants to merge 7 commits intoSciML:mainfrom
AJ0070:fix/47

Conversation

@AJ0070
Copy link
Contributor

@AJ0070 AJ0070 commented Mar 1, 2026

Checklist

  • Appropriate tests were added
  • Any code changes were done in a way that does not break public API
  • All documentation related to code changes were updated
  • The new code follows the
    contributor guidelines, in particular the SciML Style Guide and
    COLPRAC.
  • Any new documentation only uses public API

Additional context

Closes #47. Adds ElementalJL wrapper

What's added

  • src/extension_algs.jl: ElementalJL <: AbstractDenseFactorization struct with keyword argument method ∈ {:LU, :QR, :Cholesky} and a full docstring.
  • ext/LinearSolveElementalExt.jl: package extension implementing init_cacheval and solve!. Handles AbstractMatrix and Elemental.Matrix inputs, promotes non-native element types to Float64/ComplexF64.
  • Project.toml: Elemental = "0.6" registered in [weakdeps], [extensions], [compat], [extras], and [targets].
  • export ElementalJL in src/LinearSolve.jl.
  • test/elemental/elemental.jl + test/elemental/Project.toml: standalone test sub-project covering LU, QR, Cholesky, Float32, ComplexF64, direct Elemental.Matrix input, cache reuse, and a regression test for in-place mutation safety.
  • .github/workflows/Tests.yml: LinearSolveElemental CI group, Windows excluded (no Elemental_jll binary for x86_64-w64-mingw32).

AI disclosure: Used Claude to support development by writing code, documenting non-trivial logic with docstrings and comments, and creating comprehensive test coverage. Used Chatgpt to format PR description in markdown.

@AJ0070
Copy link
Contributor Author

AJ0070 commented Mar 1, 2026

relying on CI for tests outputs because currently I don't have access to my ubuntu machine and ElemetalJL doesn't have windows binary. I will ping for review once all relevant tests pass successfully.

@AJ0070
Copy link
Contributor Author

AJ0070 commented Mar 1, 2026

now tests should pass successfully. currently working on lq support

@AJ0070
Copy link
Contributor Author

AJ0070 commented Mar 3, 2026

@andreasnoack the lq! support added in JuliaParallel/Elemental.jl#83 was never included in a tagged release; the registered version is still v0.6.0 (pre- JuliaParallel/Elemental.jl#83), so downstream packages like LinearSolve.jl (@ChrisRackauckas) can't use it natively.
Could you cut a v0.6.1 release?

@andreasnoack
Copy link
Contributor

I've starting looking into it, but it looks like CI hasn't run in long time. (Was configured for Travis). I've started JuliaParallel/Elemental.jl#84 and Claude is chipping away on analysing the errors there.

@AJ0070
Copy link
Contributor Author

AJ0070 commented Mar 4, 2026

@andreasnoack please let me know if you need any help with it.

@AJ0070
Copy link
Contributor Author

AJ0070 commented Mar 4, 2026

@ChrisRackauckas I have kept this on hold and have started working on MUMPS wrapper.

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.

Elemental.jl wrapper

2 participants