Skip to content
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

Add sparse matrix option with Compressed Sparse Column ordering #693

Merged
merged 14 commits into from
Dec 20, 2024

Conversation

mattldawson
Copy link
Collaborator

@mattldawson mattldawson commented Dec 7, 2024

Adds Compressed Sparse Column ordering option for standard and vector sparse matrix ordering.

@codecov-commenter
Copy link

codecov-commenter commented Dec 7, 2024

Codecov Report

Attention: Patch coverage is 98.34711% with 6 lines in your changes missing coverage. Please review.

Project coverage is 93.68%. Comparing base (cdfd2e7) to head (bda6189).
Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
...matrix_standard_ordering_compressed_sparse_row.hpp 96.29% 2 Missing ⚠️
...e_matrix_vector_ordering_compressed_sparse_row.hpp 96.72% 2 Missing ⚠️
...rix_standard_ordering_compressed_sparse_column.hpp 98.33% 1 Missing ⚠️
...atrix_vector_ordering_compressed_sparse_column.hpp 98.55% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #693      +/-   ##
==========================================
+ Coverage   93.54%   93.68%   +0.13%     
==========================================
  Files          55       57       +2     
  Lines        3796     3941     +145     
==========================================
+ Hits         3551     3692     +141     
- Misses        245      249       +4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@mattldawson mattldawson marked this pull request as ready for review December 18, 2024 18:30
Copy link
Collaborator

@sjsprecious sjsprecious left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @mattldawson for working on this new feature. Looks good to me.

I could also confirm that the GPU tests pass on Derecho's A100 GPU with that latest nvhpc/24.11 compiler.

Comment on lines +39 to +40
class LMatrixPolicy = SparseMatrixPolicy,
class UMatrixPolicy = SparseMatrixPolicy>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need this policy for the matrices?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One of the things we wanted to try was using CSC for the L matrix and CSR for the U matrix with the Doolittle algorithm. This let us try that out, but it didn't have a big impact (is this right @sjsprecious ?). But, we're not sure why yet, so I think we wanted to leave the option until we could better understand the performance results.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Matt's right as I originally thought different policies for L/U matrices would make the performance better, but it was actually not. I still think after some optimizations we should see a benefit from this change but I could be wrong. As Matt said, let's leave this option here until we have a better understanding of the performance results.

@mattldawson mattldawson merged commit 1cbd28e into main Dec 20, 2024
28 checks passed
@mattldawson mattldawson deleted the develop-sparse-column-matrix branch December 20, 2024 20:21
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.

4 participants