llnl/hiop
HPC solver for nonlinear optimization problems
📦 Version 1.2.0: Release of HiOpBBpy solver for derivative-free optimization
- HiOpBBpy Batched Bayesian Optimizer @thartland in https://github.com/LLNL/hiop/pull/724
- HiOpBBpy Nonlinear constraints by @nychiang in https://github.com/LLNL/hiop/pull/726
- HiOpBBpy parallel MPI evaluation manager to utils by @weslleyspereira in https://github.com/LLNL/hiop/pull/733
- Derivative checker for quasi-Newton and Newton IPMs by @cnpetra in https://github.com/LLNL/hiop/pull/731
- HiOpBBpy parallel Evaluator Upgrade by @thartland in https://github.com/LLNL/hiop/pull/734
- Addressing misc compilation warnings by @cnpetra in https://github.com/LLNL/hiop/pull/738
- Logger for HiOpBBpy by @nychiang in https://github.com/LLNL/hiop/pull/739
- README update with HiOpBBpy information by @thartland in https://github.com/LLNL/hiop/pull/742
- + 1 more
✨ New Contributors
- @weslleyspereira made their first contribution in https://github.com/LLNL/hiop/pull/733
- Full Changelog: https://github.com/LLNL/hiop/compare/v1.1.1...v1.2.0
📋 What's Changed
- Consolidating qn solver by @cnpetra in https://github.com/LLNL/hiop/pull/697
- Qn solver cleanup by @cnpetra in https://github.com/LLNL/hiop/pull/699
- use clang-format in hiop to keep code style by @nychiang in https://github.com/LLNL/hiop/pull/700
- Add spack install instructions to README.md by @cameronrutherford in https://github.com/LLNL/hiop/pull/701
- fix github action packages and commands by @nychiang in https://github.com/LLNL/hiop/pull/704
- Fix hipblas path by @cnpetra in https://github.com/LLNL/hiop/pull/705
- Cmake option HIOP_TEST_WITH_SLURM by @thartland in https://github.com/LLNL/hiop/pull/707
- use C++17 by @nychiang in https://github.com/LLNL/hiop/pull/703
- + 8 more
✨ New Contributors
- @thartland made their first contribution in https://github.com/LLNL/hiop/pull/707
- Full Changelog: https://github.com/LLNL/hiop/compare/v1.1.0...v1.1.1
📋 What's Changed
- Update cmake paths be relative to hiop project by @chapman39 in https://github.com/LLNL/hiop/pull/684
- Patch two memory leaks that cause more leaks by @tepperly in https://github.com/LLNL/hiop/pull/685
- add new function for warmstart by @nychiang in https://github.com/LLNL/hiop/pull/688
- Fix CI pipeline by @nychiang in https://github.com/LLNL/hiop/pull/694
- Add working spack build with build cache. by @cameronrutherford in https://github.com/LLNL/hiop/pull/695
- Checkpointing (quasi-Newton solver) by @cnpetra in https://github.com/LLNL/hiop/pull/693
✨ New Contributors
- @chapman39 made their first contribution in https://github.com/LLNL/hiop/pull/684
- Full Changelog: https://github.com/LLNL/hiop/compare/v1.0.3...v1.1.0
📋 What's Changed
- Update modules for CI tests on LLNL LC by @nychiang in https://github.com/LLNL/hiop/pull/679
- Update cmake build system to require RAJA when GPU compute mode is used by @nychiang in https://github.com/LLNL/hiop/pull/676
- Moving limits options for NLP IPM solvers by @cnpetra in https://github.com/LLNL/hiop/pull/681
- Full Changelog: https://github.com/LLNL/hiop/compare/v1.0.2...v1.0.3
📋 What's Changed
- Removed deprecated ALG2 for cusparseCsr2cscEx2 by @cnpetra in https://github.com/LLNL/hiop/pull/671
- Addressed fixed buffer size vulnerability for vsnprintf by @nychiang in https://github.com/LLNL/hiop/pull/673
- Removed stringent `-Wall` and `-Werror` from release builds to avoid downstream compilation errors
- Full Changelog: https://github.com/LLNL/hiop/compare/v1.0.1...v1.0.2
📋 What's Changed
- Default C++ standard remains C++14
- Fix LLNL CI by @nychiang in https://github.com/LLNL/hiop/pull/663
- C++17 support: compile -Wall/-Werror proof by @tepperly in https://github.com/LLNL/hiop/pull/653
- Fix a bug in copying an empty matrix into a bigger matrix by @nychiang in https://github.com/LLNL/hiop/pull/666
- Fix the approach used to update mu by @nychiang in https://github.com/LLNL/hiop/pull/664
- Full Changelog: https://github.com/LLNL/hiop/compare/v1.0.0...v1.0.1
✨ Notable new features
- Instrumentation of RAJA sparse matrix class with execution spaces by @cnpetra in https://github.com/LLNL/hiop/pull/589
- Fix Assignment Typo in hiopMatrixSparseCsrCuda.cpp by @pate7 in https://github.com/LLNL/hiop/pull/612
- Use failure not failed in PNNL commit status posting by @cameronrutherford in https://github.com/LLNL/hiop/pull/609
- rebuild modules on quartz by @nychiang in https://github.com/LLNL/hiop/pull/619
- Use constraint violation in checkTermination by @nychiang in https://github.com/LLNL/hiop/pull/617
- MPI communication optimization by @rothpc in https://github.com/LLNL/hiop/pull/613
- fix memory leaks in inertia-free alg and condensed linsys by @nychiang in https://github.com/LLNL/hiop/pull/622
- Update IPM algorithm for the dense solver by @nychiang in https://github.com/LLNL/hiop/pull/616
- + 9 more
✨ New Contributors
- @pate7 made their first contribution in https://github.com/LLNL/hiop/pull/612
- @rothpc made their first contribution in https://github.com/LLNL/hiop/pull/613
✨ Notable new features
- Execution spaces: support for memory backends and execution policies by @cnpetra in https://github.com/LLNL/hiop/pull/543
- Build: Cuda without raja by @cnpetra in https://github.com/LLNL/hiop/pull/579
- Update of RAJA-based dense matrix to support runtime execution spaces by @cnpetra in https://github.com/LLNL/hiop/pull/580
- Reorganization of device namespace by @cnpetra in https://github.com/LLNL/hiop/pull/582
- RAJA Vector int with ExecSpace by @cnpetra in https://github.com/LLNL/hiop/pull/583
- Instrumentation of host vectors with execution spaces by @cnpetra in https://github.com/LLNL/hiop/pull/584
- Remove copy from/to device methods in vector classes by @cnpetra in https://github.com/LLNL/hiop/pull/587
- Add support for Raja with OpenMP into LLNL CI by @nychiang in https://github.com/LLNL/hiop/pull/566
- + 6 more
🐛 Bug fixes
- Refine the computation in normal equation system by @nychiang in https://github.com/LLNL/hiop/pull/530
- Fix static culibos issue #567 by @nychiang in https://github.com/LLNL/hiop/pull/568
- Fix segfault, remove nonsymmetric ginkgo solver by @fritzgoebel in https://github.com/LLNL/hiop/pull/548
- Calculate the inverse objective scale correctly. by @tepperly in https://github.com/LLNL/hiop/pull/570
- Fix `hiopVectorRajaPar::copyToStartingAt_w_pattern` by @nychiang in https://github.com/LLNL/hiop/pull/569
- Gitlab pipeline refactor by @CameronRutherford in https://github.com/LLNL/hiop/pull/597
✨ New Contributors
- @tepperly made their first contribution in https://github.com/LLNL/hiop/pull/570
📋 What's Changed
- fixing memory leaks in cuSolver by @kswirydo in https://github.com/LLNL/hiop/pull/554
- moves pnnl_cleanup to .pre stage and removes files based on age by @jdmacam in https://github.com/LLNL/hiop/pull/555
- Condensed/normaleqn linear system without CUDA/RAJA by @nychiang in https://github.com/LLNL/hiop/pull/557
- Fix mds raja example for raja without GPU by @nychiang in https://github.com/LLNL/hiop/pull/558
- git submodule fixes by @cnpetra in https://github.com/LLNL/hiop/pull/561
- Misc build system fixes related to HIOP_SPARSE by @cnpetra in https://github.com/LLNL/hiop/pull/560
- Disable openmp when raja is not used by @nychiang in https://github.com/LLNL/hiop/pull/562
- Pre stage pipeline fix by @ryandanehy in https://github.com/LLNL/hiop/pull/564
- + 1 more
✨ New Contributors
- @jdmacam made their first contribution in https://github.com/LLNL/hiop/pull/555
- @ryandanehy made their first contribution in https://github.com/LLNL/hiop/pull/564
- Full Changelog: https://github.com/LLNL/hiop/compare/v0.7.0...v0.7.1
📋 Changes
- 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
This tag provides an initial integration with ginko, fixes a couple of issues, and add options for (outer) iterative refinement.
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.
📋 Changes
- 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.
- 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
📋 Changes
- soft feasibility restoration
- Relaxer of equality constraints at the NLP formulation level
- Krylov interfaces and implementation for CG and BiCGStab
- 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
Updated xSDK compliance document for HiOp.
📋 Changes
- 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
📋 Changes
- solver class for Magma was updated to work on the GPU
- interface for PARDISO (CPU)
- bug fixes for PriDec solver
Updated development workflow on supported CI and fixed a couple of other issues.
Fixes for a couple of bugs in RAJA linear algebra implementation and in NLP scaling
Fixes a couple of small bugs (corner cases) in the linear algebra objects
📋 Changes
- Development of a sparse NLP solver and associated sparse NLP interface
- Update of the mixed dense-sparse NLP solver to support full GPU compute mode
- Unit testing and documentation were expanded and consolidated
- Added partial support for device/GPU computations for the linear algebra of sparse NLPs
- Second-order corrections to the quasi- and full-Newton search directions
- Support for the relaxing and adjustment of variables and constraints bounds
- Implemented gradient-based scaling of the problem
- Least-squares initialization and computation of the duals
- + 1 more
📋 Changes
- Development of a sparse NLP solver and associated sparse NLP interface
- Update of the mixed dense-sparse NLP solver to support full GPU compute mode
- Unit testing and documentation were expanded and consolidated
- Added partial support for device/GPU computations for the linear algebra of sparse NLPs
- Second-order corrections to the full-Newton search directions
- Support for the relaxing and adjustment of variables and constraints bounds
- Implemented gradient-based scaling of the problem
- Least-squares initialization and computation of the duals
- + 1 more
📋 Changes
- a Newton interior-point solver for nonlinear nonconvex optimization to complement the existing Quasi-Newton interior-point solver
- capabilities to solve optimization solvers with mixed dense and sparse (MDS) blocks: new MDS interface and new MDS linear algebra
- support for GPU-based acceleration of MDS linear algebra.
📋 Changes
- implementation of various strategies to deal with fixed variables (relax, remove)
- comprehensive testing and bug fixing for Mac OS
- minor fixes of bugs found on various HPC platforms (power pc, bg/q, etc)
- minor interface and options refinement required by the integration with MFEM mesh optimization interface
Fully parallel version that has been used in production with external PDE packages for solving topology optimization problems. Has been deployed on a variety of linux-based systems, including HPC platforms.
