Releases: LLNL/hiop
Scalable checkpointing and restarting
The salient feature of this release is support for checkpointing and restarting for the quasi-Newton solver. These features use the axom's scalable sidre data manager.
What's Changed
- Update cmake paths be relative to hiop project by @chapman39 in #684
- Patch two memory leaks that cause more leaks by @tepperly in #685
- add new function for warmstart by @nychiang in #688
- Fix CI pipeline by @nychiang in #694
- Add working spack build with build cache. by @cameronrutherford in #695
- Checkpointing (quasi-Newton solver) by @cnpetra in #693
New Contributors
- @chapman39 made their first contribution in #684
Full Changelog: v1.0.3...v1.1.0
NLP Moving limits and misc fixes
v1.0.2
C++17 compatible and misc fixes
What's Changed
Default C++ standard remains C++14
- Fix LLNL CI by @nychiang in #663
- C++17 support: compile -Wall/-Werror proof by @tepperly in #653
- Fix a bug in copying an empty matrix into a bigger matrix by @nychiang in #666
- Fix the approach used to update mu by @nychiang in #664
Full Changelog: v1.0.0...v1.0.1
Mature solvers interfaces and execution backends
Notable new features
Interfaces of various solvers reached an equilibrium point after HiOp was interfaced with multiple optimization front-ends (e.g., power grid ACOPF and SC-ACOPF problems and topology optimization) both on CPUs and GPUs. The PriDec solver reached exascale on Frontier after minor communication optimizations. The quasi-Newton interior-point solver received a couple of updates that increase robustness. The Newton interior-point solver can fully operate on GPUs with select GPU linear solvers (CUSOLVER-LU and Gingko).
- Instrumentation of RAJA sparse matrix class with execution spaces by @cnpetra in #589
- Fix Assignment Typo in hiopMatrixSparseCsrCuda.cpp by @pate7 in #612
- Use failure not failed in PNNL commit status posting by @cameronrutherford in #609
- rebuild modules on quartz by @nychiang in #619
- Use constraint violation in checkTermination by @nychiang in #617
- MPI communication optimization by @rothpc in #613
- fix memory leaks in inertia-free alg and condensed linsys by @nychiang in #622
- Update IPM algorithm for the dense solver by @nychiang in #616
- Use integer preprocessor macros for version information by @tepperly in #627
- use compound vec in bicg IR by @nychiang in #621
- Use bicg ir in the quasi-Newton solver by @nychiang in #620
- Add support to MPI in C/Fortran examples by @nychiang in #633
- Refactor CUSOLVER-LU module and interface by @pelesh in #634
- Add MPI unit test for DenseEx4 by @nychiang in #644
- Add more options to control NLP scaling by @nychiang in #649
- Development of the feasibility restoration in the quasi-Newton solver by @nychiang in #647
- GPU linear solver interface by @pelesh in #650
New Contributors
Execution spaces abstractions and misc fixes
This release hosts a series of comprehensive internal developments and software re-engineering to improve the portability and performance on accelerators/GPU platforms. No changes to the user interface permeated under this release.
Notable new features
A new execution space abstraction is introduced to allow multiple hardware backends to run concurrently. The proposed design differentiates between "memory backend" and "execution policies" to allow using RAJA with Umpire-managed memory, RAJA with Cuda- or Hip-managed memory, RAJA with std memory, Cuda/Hip kernels with Cuda-/Hip- or Umpire-managed memory, etc.
- Execution spaces: support for memory backends and execution policies by @cnpetra in #543
- Build: Cuda without raja by @cnpetra in #579
- Update of RAJA-based dense matrix to support runtime execution spaces by @cnpetra in #580
- Reorganization of device namespace by @cnpetra in #582
- RAJA Vector int with ExecSpace by @cnpetra in #583
- Instrumentation of host vectors with execution spaces by @cnpetra in #584
- Remove copy from/to device methods in vector classes by @cnpetra in #587
- Add support for Raja with OpenMP into LLNL CI by @nychiang in #566
New vector classes using vendor-provided API were introduced and documentation was updated/improved
- Development of
hiopVectorCuda
by @nychiang in #572 - Implementation of
hiopVectorHip
by @nychiang in #590 - Update user manual by @nychiang in #591
- Update the code comments in
hiopVector
classes by @nychiang in #592
Refinement of triangular solver implementation for Ginkgo by @fritzgoebel in #585
Bug fixes
- Refine the computation in normal equation system by @nychiang in #530
- Fix static culibos issue #567 by @nychiang in #568
- Fix segfault, remove nonsymmetric ginkgo solver by @fritzgoebel in #548
- Calculate the inverse objective scale correctly. by @tepperly in #570
- Fix
hiopVectorRajaPar::copyToStartingAt_w_pattern
by @nychiang in #569 - Gitlab pipeline refactor by @cameronrutherford in #597
New Contributors
Misc build system fixes
This minor release fixes a couple of issues found in the build system after the major release 0.7 of HiOp.
What's Changed
- fixing memory leaks in cuSolver by @kswirydo in #554
- moves pnnl_cleanup to .pre stage and removes files based on age by @jdmacam in #555
- Condensed/normaleqn linear system without CUDA/RAJA by @nychiang in #557
- Fix mds raja example for raja without GPU by @nychiang in #558
- git submodule fixes by @cnpetra in #561
- Misc build system fixes related to HIOP_SPARSE by @cnpetra in #560
- Disable openmp when raja is not used by @nychiang in #562
- Pre stage pipeline fix by @ryandanehy in #564
- New tag release - 0.7.1 by @cnpetra in #565
New Contributors
- @jdmacam made their first contribution in #555
- @ryandanehy made their first contribution in #564
Full Changelog: v0.7.0...v0.7.1
Fortran interface and misc fixes and improvements
- Fortran interface and examples
- Bug fixing for sparse device linear solvers
- Implementation of CUDA CSR matrices
- Iterative refinement within CUSOLVER linear solver class
- Improved robustness and performance of mixed dense-sparse solver for AMD/HIP
ginko integration and misc fixes
This tag provides an initial integration with ginko, fixes a couple of issues, and add options for (outer) iterative refinement.
HIP linear algebra workaround and update for RAJA > v0.14
This version/tag provides a workaround for an issue in the HIP BLAS and updates the RAJA code to better operate with the newer versions of RAJA.