Skip to content

Commit 10b7d3e

Browse files
authored
release 1.0 (#660)
* docs version upped and refs updated * change log and upped version
1 parent bad29cd commit 10b7d3e

7 files changed

Lines changed: 65 additions & 15 deletions

File tree

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,33 @@
11
# Change Log
22
All notable changes to HiOp are documented in this file.
33

4+
## Version 1.0.0: Mature solvers interfaces and execution backends
5+
### Notable new features
6+
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).
7+
8+
* Instrumentation of RAJA sparse matrix class with execution spaces by @cnpetra in https://github.com/LLNL/hiop/pull/589
9+
* Fix Assignment Typo in hiopMatrixSparseCsrCuda.cpp by @pate7 in https://github.com/LLNL/hiop/pull/612
10+
* Use failure not failed in PNNL commit status posting by @cameronrutherford in https://github.com/LLNL/hiop/pull/609
11+
* rebuild modules on quartz by @nychiang in https://github.com/LLNL/hiop/pull/619
12+
* Use constraint violation in checkTermination by @nychiang in https://github.com/LLNL/hiop/pull/617
13+
* MPI communication optimization by @rothpc in https://github.com/LLNL/hiop/pull/613
14+
* fix memory leaks in inertia-free alg and condensed linsys by @nychiang in https://github.com/LLNL/hiop/pull/622
15+
* Update IPM algorithm for the dense solver by @nychiang in https://github.com/LLNL/hiop/pull/616
16+
* Use integer preprocessor macros for version information by @tepperly in https://github.com/LLNL/hiop/pull/627
17+
* use compound vec in bicg IR by @nychiang in https://github.com/LLNL/hiop/pull/621
18+
* Use bicg ir in the quasi-Newton solver by @nychiang in https://github.com/LLNL/hiop/pull/620
19+
* Add support to MPI in C/Fortran examples by @nychiang in https://github.com/LLNL/hiop/pull/633
20+
* Refactor CUSOLVER-LU module and interface by @pelesh in https://github.com/LLNL/hiop/pull/634
21+
* Add MPI unit test for DenseEx4 by @nychiang in https://github.com/LLNL/hiop/pull/644
22+
* Add more options to control NLP scaling by @nychiang in https://github.com/LLNL/hiop/pull/649
23+
* Development of the feasibility restoration in the quasi-Newton solver by @nychiang in https://github.com/LLNL/hiop/pull/647
24+
* GPU linear solver interface by @pelesh in https://github.com/LLNL/hiop/pull/650
25+
26+
27+
### New Contributors
28+
* @pate7 made their first contribution in https://github.com/LLNL/hiop/pull/612
29+
* @rothpc made their first contribution in https://github.com/LLNL/hiop/pull/613
30+
431
## Version 0.7.2: Execution spaces abstractions and misc fixes
532
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.
633

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ if (POLICY CMP0074)
1111
cmake_policy(SET CMP0074 NEW)
1212
endif ()
1313

14-
project (hiop VERSION "0.7.2")
14+
project (hiop VERSION "1.0.0")
1515

1616
string(TIMESTAMP HIOP_RELEASE_DATE "%Y-%m-%d")
1717

README.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,27 @@ author = {Cosmin G. Petra},
2929
```
3030
and when using the the PriDec solver please cite:
3131
```
32-
@article{wang2022,
32+
@article{wang2023,
3333
archivePrefix = {arXiv},
34-
eprint = {arXiv:2204.09631},
3534
author = {J. Wang and C. G. Petra},
36-
title = {An optimization algorithm for nonsmooth nonconvex problems with upper-$C^2$ objective},
37-
publisher = {arXiv},
38-
year = {2022},
39-
journal={ (submitted) },
35+
title = {A Sequential Quadratic Programming Algorithm for Nonsmooth Problems with Upper-$\mathcal{C}^2$ Objective},
36+
journal = {SIAM Journal on Optimization},
37+
volume = {33},
38+
number = {3},
39+
pages = {2379-2405},
40+
year = {2023},
41+
doi = {10.1137/22M1490995}
4042
}
4143
@INPROCEEDINGS{wang2021,
42-
author={Wang, Jingyi and Chiang, Nai-Yuan and Petra, Cosmin G.},
44+
author={J. Wang and N. Chiang and C. G. Petra},
4345
booktitle={2021 20th International Symposium on Parallel and Distributed Computing (ISPDC)},
4446
title={An asynchronous distributed-memory optimization solver for two-stage stochastic programming problems},
4547
year={2021},
4648
volume={},
4749
number={},
4850
pages={33-40},
49-
doi={10.1109/ISPDC52870.2021.9521613}
50-
}
51+
doi={10.1109/ISPDC52870.2021.9521613}}
52+
}
5153
```
5254

5355
## Build/install instructions

doc/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ HiOp's [user manual](hiop_usermanual.pdf) provides instructions on how to obtain
44
its interface, user options, and use as an optimization library. Guidelines on how is best to use
55
the solver for parallel computations are also provided.
66

7-
The mathematical approach, computational technique, and parallelization strategy and efficiency are described in the
8-
accompanying [technical report](hiop_implpaper.pdf) (publication pending).
7+
The mathematical approach, computational techniques, and parallelization strategies can be found in the
8+
journal publications listed in the root [readme](../README.md) file.

doc/hiop_usermanual.pdf

-12.3 KB
Binary file not shown.

doc/src/petra.bib

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2545,6 +2545,27 @@ @TECHREPORT{pridec_impl
25452545
year = {2021}
25462546
}
25472547

2548+
@article{wang2023,
2549+
archivePrefix = {arXiv},
2550+
author = {J. Wang and C. G. Petra},
2551+
title = {A Sequential Quadratic Programming Algorithm for Nonsmooth Problems with Upper-$\mathcal{C}^2$ Objective},
2552+
journal = {SIAM Journal on Optimization},
2553+
volume = {33},
2554+
number = {3},
2555+
pages = {2379-2405},
2556+
year = {2023},
2557+
doi = {10.1137/22M1490995}
2558+
}
2559+
@INPROCEEDINGS{wang2021,
2560+
author={J. Wang and N. Chiang and C. G. Petra},
2561+
booktitle={2021 20th International Symposium on Parallel and Distributed Computing (ISPDC)},
2562+
title={An asynchronous distributed-memory optimization solver for two-stage stochastic programming problems},
2563+
year={2021},
2564+
volume={},
2565+
number={},
2566+
pages={33-40},
2567+
doi={10.1109/ISPDC52870.2021.9521613}}
2568+
}
25482569
@TECHREPORT{idas,
25492570
author = {Radu Serban and Cosmin G. Petra and Alan C. Hindmarsh},
25502571
title = {User Documentation for {IDAS} v1.2.2},

doc/src/techrep_main.tex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@
133133
\vspace{3cm}
134134

135135
{\huge\bfseries \Hi\ -- User Guide} \\[14pt]
136-
{\large\bfseries version 0.7}
136+
{\large\bfseries version 1.0}
137137

138138
\vspace{3cm}
139139

@@ -155,7 +155,7 @@
155155
\vspace{4.75cm}
156156

157157
\textcolor{violet}{{\large\bfseries Oct 15, 2017} \\
158-
{\large\bfseries Updated Sep 30, 2022}}
158+
{\large\bfseries Updated Sep 7, 2023}}
159159

160160
\vspace{0.75cm}
161161

@@ -752,7 +752,7 @@ \subsection{Structured NLPs suitable to primal decomposition (PriDec) schemes}\l
752752
&&[z_u]&&& \hspace{0.5cm} x_l \leq x \leq x_u. & [z_u] &&&\label{pridebounds}
753753
\end{align}
754754
Mathematically, the above problem is identical (and has the same specification) to the NLP~\eqref{obj}-\eqref{bounds}, with the exception of the so-called ``recourse'' terms $r_i(x)$ appearing in the objective. Each of these functions are real-valued, $r_i:\mathbb{R}^n\rightarrow \mathbb{R}$, for all $i\in\{1,2,\ldots, K\}$, and can be of various order of differentiability. As of now, the recourse functions $r_i(x)$ need to be Lipschitz continuous and continuously differentiable.
755-
It is also possible for $r_i(x)$ to be Lipschitz and only weakly concave (with convergence guarantees). The users are encouraged to contact \Hi developers for the latest developements in this area. A compact description of the algorithm implemented by PriDec can be found in~\cite{pridec_impl} (the technical report version is available \texttt{doc/} directory).
755+
It is also possible for $r_i(x)$ to be Lipschitz and only weakly concave (with convergence guarantees). The users are encouraged to contact \Hi developers for the latest developements in this area. A compact description of the mathematical algorithm implemented by PriDec can be found in~\cite{wang2023}, while the parallelization strategy can be found in~\cite{wang2021}.
756756

757757
The input in which \Hi expects for this class of problems is a bit different than for NLPs of the form~\eqref{obj}-\eqref{bounds} and MDS NLPs introduced in the previous sections. This is mainly caused by the specifics of the primal decomposition algorithm/solver that was purposedly developed to solve~\eqref{prideobj}-\eqref{pridebounds} for large $K$ (\textit{e.g.}, $K=O(10^6)$) efficiently on a massively parallel computing platform. Nevertheless, for smaller $K$, problems of form~\eqref{prideobj}-\eqref{pridebounds} can be solved with \Hi using the sparse and MDS input interfaces.
758758

0 commit comments

Comments
 (0)