All notable changes to HiOp will be documented in this file.
The salient features of v0.6.0 are
- the release of the primal decomposition (PriDec) solver for structured two-stage problems
- improved support for (NVIDIA) GPUs for solving sparse optimization problems via NVIDIA's cuSOLVER API and newly developed condensed optimization kernels.
Other notable capabilities include
- improved accuracy in the computations of the search directions via Krylov-based iterative refinement
- design of a matrix interface for sparse matrices in compressed sparse row format and (capable) CPU reference implementation
New algorithmic features related to the NLP solver(s) and associated linear algebra KKT systems
- soft feasibility restoration
- Relaxer of equality constraints at the NLP formulation level
- Krylov interfaces and implementation for CG and BiCGStab (ready for device computations)
- protype of the condensed linear system and initial Krylov-based iterative refinement
- update of the Magma solver class for the latest Magma API
- elastic mode
This release also includes several bug fixes.
xSDK compliance
- fixed bugs in the IPM solver: gradient scaling on CUDA, unscaled objective in the user callbacks, lambda capture fix in axpy for ROCm
- exported sparse config in cmake
- added user options for the algorithm parameters in PriDec solver
Modified the computation of the scaling factor to use the user-specified initial point
The salient features of this major release are
- update of the interface to MAGMA and capability for running mixed dense-sparse (MDS) problems solely in the device memory space
- added interface PARDISO linear solver
- porting of the sparse linear algebra kernels to device via RAJA performance portability layer
- various optimizations and bug fixes for the RAJA-based dense linear algebra kernels
- Primal decomposition solver HiOp-PriDec available as a release candidate