Skip to content

Add Distributed Linear Solve and Inverse Support for DMatrix #634

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 32 commits into
base: master
Choose a base branch
from

Conversation

AkhilAkkapelli
Copy link
Contributor

@AkhilAkkapelli AkhilAkkapelli commented Jul 9, 2025

Adds support for distributed linear algebra operations on DMatrix, like inv(), ldiv!(), rdiv!(), \, /, and solving A*x = b or A*X = B.

  • Overloads inv, \, /, ldiv!, and rdiv! to return results as DMatrix instead of standard Matrix.
  • Enables solving linear systems with DMatrix and right-hand sides (DMatrix or DVector), producing distributed outputs.
  • Internally uses parallel routines or distributes computation where feasible instead of falling back to LinearAlgebra only.

- **Implemented RowMaximum Pivoting**: Added a new LU factorization strategy using the RowMaximum pivoting method for distributed matrices

- **Custom Pivot Search and Swapping**: Introduced helper functions for searching row maxima, updating pivot indices, and swapping rows in both panel and trailing submatrices

- **Blockwise Distributed Algorithm**: Ensured compatibility with block-partitioned distributed matrices, supporting only equal block sizes for now

- **Non-breaking Addition**: Existing NoPivot LU functionality remains unchanged; RowMaximum is an additional strategy selectable via the LinearAlgebra interface.
@AkhilAkkapelli AkhilAkkapelli changed the title Add Distributed Linear Solve and Inversion Support for DMatrix Add Distributed Linear Solve and Inverse Support for DMatrix Jul 9, 2025
AkhilAkkapelli and others added 15 commits July 9, 2025 22:32
- **Implemented RowMaximum Pivoting**: Added a new LU factorization strategy using the RowMaximum pivoting method for distributed matrices

- **Custom Pivot Search and Swapping**: Introduced helper functions for searching row maxima, updating pivot indices, and swapping rows in both panel and trailing submatrices

- **Blockwise Distributed Algorithm**: Ensured compatibility with block-partitioned distributed matrices, supporting only equal block sizes for now

- **Non-breaking Addition**: Existing NoPivot LU functionality remains unchanged; RowMaximum is an additional strategy selectable via the LinearAlgebra interface.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants