Skip to content

Commit 6acee83

Browse files
cnpetranychiang
andauthored
preps for v1.2 release (#746)
* deleted user manual pdf in src * fixed issues with user manual tex file * updated user manual * bumped ver num * updated change log * Update doc/src/sections/hiopbbpy.tex Co-authored-by: Nai-Yuan Chiang <chiang7@llnl.gov> --------- Co-authored-by: Nai-Yuan Chiang <chiang7@llnl.gov>
1 parent a2cf636 commit 6acee83

8 files changed

Lines changed: 41 additions & 26 deletions

File tree

CHANGELOG.md

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

4+
## Version 1.2.0: Release of HiOpBBpy solver for derivative-free optimization
5+
* HiOpBBpy Batched Bayesian Optimizer @thartland in https://github.com/LLNL/hiop/pull/724
6+
* HiOpBBpy Nonlinear constraints by @nychiang in https://github.com/LLNL/hiop/pull/726
7+
* HiOpBBpy parallel MPI evaluation manager to utils by @weslleyspereira in https://github.com/LLNL/hiop/pull/733
8+
* Derivative checker for quasi-Newton and Newton IPMs by @cnpetra in https://github.com/LLNL/hiop/pull/731
9+
* HiOpBBpy parallel Evaluator Upgrade by @thartland in https://github.com/LLNL/hiop/pull/734
10+
* Addressing misc compilation warnings by @cnpetra in https://github.com/LLNL/hiop/pull/738
11+
* Logger for HiOpBBpy by @nychiang in https://github.com/LLNL/hiop/pull/739
12+
* README update with HiOpBBpy information by @thartland in https://github.com/LLNL/hiop/pull/742
13+
* Misc fixes for fixed variables, feasibility restoration, Krylov-based IR, and others by @cnpetra in https://github.com/LLNL/hiop/pull/710
14+
15+
## New Contributors
16+
* @weslleyspereira made their first contribution in https://github.com/LLNL/hiop/pull/733
17+
18+
**Full Changelog**: https://github.com/LLNL/hiop/compare/v1.1.1...v1.2.0
19+
420
## Version 1.1.1: Misc updates to quasi-Newton solver and build system, updates to recent RAJA, and preliminary black-box solver
521
* Consolidating qn solver by @cnpetra in https://github.com/LLNL/hiop/pull/697 and https://github.com/LLNL/hiop/pull/699
622
* Use clang-format in hiop to keep code style by @nychiang in https://github.com/LLNL/hiop/pull/700

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ if (POLICY CMP0074)
1717
cmake_policy(SET CMP0074 NEW)
1818
endif ()
1919

20-
project (hiop VERSION "1.1.1")
20+
project (hiop VERSION "1.2.0")
2121

2222
string(TIMESTAMP HIOP_RELEASE_DATE "%Y-%m-%d")
2323

doc/hiop_usermanual.pdf

31.7 KB
Binary file not shown.

doc/src/appendix.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ \subsubsection{Condensed Linear System}\label{kkt:condensed}
1919

2020
\warningcp{Note:} If equality constraints $c(x)=c_E$ are present, they will be slightly relaxed to inequalities $c_E - C_1\leq c(x)\leq c_E+C_1$, where $C_1$ is a small positive perturbation that will be updated by \Hi internally. Consequently, with the condensed linear algebra, \Hi solves problems with equality constraints as inequality-only problems in the form of~\eqref{spobj_condensed}-\eqref{spbounds_condensed}.\\
2121

22-
Using the notations from \cite{petra_hiop}, the condensed linear system solves the most stable ``xdycyd'' KKT linear system
22+
Using the notations from~\cite{petra2019memory}, the condensed linear system solves the most stable ``xdycyd'' KKT linear system
2323
\begin{equation} \label{KKT_xdycyd_condensed}
2424
\begin{bmatrix}
2525
H+D_x+\delta_{w}I & 0 & J_d^T\\

doc/src/sections/hiopbbpy.tex

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ \subsection{HiOpBBpy installation}
2020
\end{verbatim}
2121

2222
\Hibbpy also supports using nonlinear optimization solver Ipopt \cite{ipopt_impl} as its internal solver.
23-
In order to use Ipopt, \Hibbpy optionally depends on {\it{cyipopt}}, which is a python wrapper of Ipopt.
24-
To use Ipopt via {\it{cyipopt}},, one can install Ipopt from source, and then export the \verb~IPOPT_PATH~ and
23+
In order to use Ipopt, \Hibbpy optionally depends on {\it{cyipopt}}, which is a Python wrapper of Ipopt.
24+
To use Ipopt via {\it{cyipopt}}, one can install Ipopt from source, and then export the \verb~IPOPT_PATH~ and
2525
\begin{verbatim}
2626
> export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$IPOPT_PATH/lib/pkgconfig
2727
> export PATH=$PATH:$IPOPT_PATH/bin
@@ -70,7 +70,7 @@ \subsection{The Python interface}
7070
One example to the \Hibbpy Bayesian optimization algorithm is the following:
7171

7272

73-
\begin{lstlisting}
73+
\begin{lstlisting}[language=Python]
7474
import numpy as np
7575
from hiopbbpy.surrogate_modeling import smtKRG
7676
from hiopbbpy.opt import BOAlgorithm
@@ -96,7 +96,7 @@ \subsection{The Python interface}
9696

9797
acq_type = "EI" # EI or LCB
9898
options = {
99-
'acquisition_type': acq_type,
99+
'acquisition\_type': acq_type,
100100
'log_level': 'info',
101101
'bo_maxiter': 10,
102102
}
@@ -148,27 +148,23 @@ \subsection{Parallel runs}
148148

149149
acq_type = "EI" # EI or LCB
150150
options = {
151-
'acquisition_type': acq_type,
152-
'log_level': 'info',
153-
'bo_maxiter': 10,
154-
'batch_size': 4,
155-
'obj_evaluator': obj_evaluator,
156-
'opt_evaluator': opt_evaluator
151+
'acquisition_type': acq_type,
152+
'log_level': 'info',
153+
'bo_maxiter': 10,
154+
'batch_size': 4,
155+
'obj_evaluator': obj_evaluator,
156+
'opt_evaluator': opt_evaluator
157157
}
158158
# Instantiate and run Bayesian Optimization
159159
bo = BOAlgorithm(problem, gp_model, x_train, y_train, options = options)
160160
bo.optimize()
161161
\end{lstlisting}
162162

163-
To run this python script \verb~BODriver.py~, in a python environment in which \verb~mpi4py~, and \Hibbpy are installed do the following:
164-
165-
163+
To run this Python script \verb~BODriver.py~, in a Python environment in which \verb~mpi4py~, and \Hibbpy, the following command can be used
166164
\begin{verbatim}
167165
> mpirun -np 4 python -m mpi4py.futures BODriver.py
168166
\end{verbatim}
169-
170-
To run the same script in a slurm based scheduling system do the following:
171-
167+
In a Slurm-based scheduling system, the command should look be issued as
172168
\begin{verbatim}
173169
> srun -n 4 python -m mpi4py.futures BODriver.py
174170
\end{verbatim}

doc/src/techrep_main.pdf

-486 KB
Binary file not shown.

doc/src/techrep_main.tex

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@
1111
\usetikzlibrary{patterns}
1212

1313
\usepackage{adjustbox}
14+
\usepackage{textcomp}
1415
\usepackage{listings}
1516

17+
1618
\usepackage{color}
1719
\definecolor{secblue}{HTML}{3B5E7F}
1820
\definecolor{mycolor1}{RGB}{184,183,255}
@@ -134,7 +136,7 @@
134136
\vspace{3cm}
135137

136138
{\huge\bfseries \Hi\ -- User Guide} \\[14pt]
137-
{\large\bfseries version 1.1.0}
139+
{\large\bfseries version 1.2.0}
138140

139141
\vspace{3cm}
140142

@@ -156,7 +158,7 @@
156158
\vspace{4.75cm}
157159

158160
\textcolor{violet}{{\large\bfseries Oct 15, 2017} \\
159-
{\large\bfseries Updated Sept 22, 2024}}
161+
{\large\bfseries Updated Sept 10, 2025}}
160162

161163
\vspace{0.75cm}
162164

@@ -252,9 +254,9 @@ \section{Introduction}
252254
The goal of quasi-Newton solver of \Hi is to remove the parallelization limitations of existing state-of-the-art solvers for nonlinear programming (NLP) and match/surpass the parallel scalability of the underlying PDE or DAE solver. Such limitation occurs whenever the dimensionality of the optimization space is as large as the dimensionality of the discretization of the differential systems of equations governing the optimization. In these cases, the use of existing NLP solvers results in i. considerable long time spent in optimization, which affects the parallel scalability, and/or ii. memory requirements beyond the memory capacity of the computational node that runs the optimization. \Hi removes these scalability/parallelization bottlenecks (for certain optimization problems described above) by offering interface for a \textit{memory-distributed} specification of the problem and parallelizing the optimization search using specialized parallel linear algebra technique.
253255
z
254256
The general computational approach in \Hi is to use existing state-of-the-art NLP algorithms and develop linear algebra kernels tailored to the specific of this
255-
class of problems. \Hi is based on an interior-point line search filter method~\cite{waecther_05_ipopt2,waecther_05_ipopt} and follows the implementation details from~\cite{waecther_05_ipopt0}, which is the implementation paper for IPOPT open-source NLP solver. The quasi-Newton approach is based on limited-memory secant approximations of the Hessian~\cite{ByrdNocedalSchnabel_94_quasiNewtonRepres}, which is generalized as required by the specific of interior-point methods for constrained optimization problems~\cite{petra_hiop}. The specialized linear algebra decomposition is obtained by using a Schur-complement reduction that
257+
class of problems. \Hi is based on an interior-point line search filter method~\cite{waecther_05_ipopt2,waecther_05_ipopt} and follows the implementation details from~\cite{waecther_05_ipopt0}, which is the implementation paper for IPOPT open-source NLP solver. The quasi-Newton approach is based on limited-memory secant approximations of the Hessian~\cite{ByrdNocedalSchnabel_94_quasiNewtonRepres}, which is generalized as required by the specific of interior-point methods for constrained optimization problems~\cite{petra2019memory}. The specialized linear algebra decomposition is obtained by using a Schur-complement reduction that
256258
leverages the fact that the quasi-Newton Hessian matrix has a small number of
257-
dense blocks that border a low-rank update of a diagonal matrix. The technique is described in ~\cite{petra_hiop}. The Newton interior-point solver of \Hi uses linear algebra specialized to the particular form of the MDS NLPs supported by this solver, for more details consult Section~\ref{sec:mds}.
259+
dense blocks that border a low-rank update of a diagonal matrix. The technique is described in~\cite{petra2019memory}. The Newton interior-point solver of \Hi uses linear algebra specialized to the particular form of the MDS NLPs supported by this solver, for more details consult Section~\ref{sec:mds}.
258260

259261
The C++ parallel implementation in \Hi
260262
is lightweight and portable since it is expressed and implemented only in terms of parallel (multi-)vector operations (implemented internally using BLAS level 1 and level 2 operations and MPI for communication) and BLAS level 3 and LAPACK operations for small dense matrices.
@@ -966,7 +968,8 @@ \subsection{Compiling and linking your project with the \Hi library}
966968
\begin{itemize}
967969
\item append to the compiler's include path the location of the HiOP's headers: \begin{verbatim} -Ihiop-dir/include \end{verbatim}
968970
\item specify \texttt{libhiop.a} to the linker, possibly adding the HiOP's library directory to the linker's libraries paths:
969-
\begin{verbatim}-Lhiop-dir/lib -lhiop\end{verbatim} \end{itemize}
971+
\begin{verbatim}-Lhiop-dir/lib -lhiop\end{verbatim}
972+
\end{itemize}
970973
Here, \texttt{hiop-dir} is the \Hi's distribution directory (created using \Hi's build system, in particular by using \texttt{make install} command).
971974

972975
In addition, a shared dynamic load library can be also built by using \texttt{HIOP\_BUILD\_SHARED} option with cmake.

setup.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
'''
2-
This is the setup file for installing hiopbbpy
2+
This is the setup file for installing HiOpBBpy
33
44
Authors: Tucker Hartland <hartland1@llnl.gov>
55
Nai-Yuan Chiang <chiang7@llnl.gov>
@@ -18,8 +18,8 @@
1818

1919
metadata = dict(
2020
name="hiopbbpy",
21-
version="0.0.8",
22-
description="HiOp black box optimization (hiopbbpy)",
21+
version="1.2.0",
22+
description="HiOp black box optimization (HiOpBBpy)",
2323
author="Tucker hartland et al.",
2424
author_email="hartland1@llnl.gov",
2525
license="BSD-3",

0 commit comments

Comments
 (0)