Skip to content

Releases: ORNL/ReSolve

Second Alpha Release

05 Nov 16:51

Choose a tag to compare

Major Features

  1. Re::Solve now works reliably with asymmetric matrices, with no need for intermediate CSC storage.
    This requires switching $L$ with $U$ and $P$ with $Q$ and reinterpretting them as CSR instead of CSC.
    It is seamless from the user perspective and fixed many bugs.

  2. Significant improvements to documentation and instructions inside and outside the code. Added general API description, including details on memory space synchronization.

  3. Added more rigorous checks for PRs for clang formatting and to compile without warnings and memory leaks.

  4. Updated pull request and issue templates.

Bug Fixes

  1. Fixed a bug that produced inaccurate results for some asymmetric matrices with major feature 1.

  2. Synchronized devices after HIP functions. HIP executes asynchronously, so bugs occured without synchronization.

  3. Corrected the way cmake finds suitsparse.

  4. Fixed various memory leaks and compiler warnings.

Minor Features and Enhancements

  1. Changed all examples and tests to use Csr format, added uniform command line parsers (no longer hard-coded), and decluttered them.

  2. Added asymmetric matrices and well-conditioned matrices to the test suite.

  3. Removed RocSparse "fast mode" triangular solver and use RocSolver triangular solver only as it is now faster and removes dependencies.

  4. Put sorting inside the KLU extraction because many solvers assume sorted factors and there's no need to reimplement sorting constantly.

  5. Removed duplicate code, added code comments, corrected code to fit guidelines, removed magic numbers, and simplified code where possible.

  6. Added the ability to reset a workspace without completely destroying it.

  7. Improved testing and added tests where they were missing.

  8. Added kernels for multiplying a vector by a diagonal matrix and a general matrix by a diagonal matrix (left and right).

  9. Prohibitted sloppy memory syncing and added more descriptive error messages when a prohibited action is attempted.

  10. The code now tracks the updated status for each vector in a multivector.

  11. Added the ability to reuse a transpose allocation.

  12. Added the ability to generically set solver parameters.

  13. Added LUSOL direct solver, which can factorize matrices and extract factors independently of KLU.

  14. Various Spack updates.

First ReSolve release

20 Dec 18:37
e10dd41

Choose a tag to compare

First ReSolve release Pre-release
Pre-release

This first release includes:

  • GPU resident refactorization direct linear solvers (for NVIDIA and AMD architectures)
  • Portable (F)GMRES iterative linear solvers
  • Portable randomized iterative linear solvers

Note that this is still experimental software, so expects feature set to increase and API to change.