HiOp is an optimization solver for solving certain mathematical optimization problems expressed as nonlinear programming problems. HiOp is a lightweight HPC solver that leverages application's existing data parallelism to parallelize the optimization iterations by using specialized linear algebra kernels.
HiOp uses a CMake-based build system. There are no customization made to CMake, hence, all the standard CMake options apply.
A standard build can be done by invoking in the 'build' directory the following
$> cmake ..
$> make
$> make test
$> make install
This sequence will build HiOp and install the headers and the shared library in the directory '_dist-default-build' in HiOp's root directory.
The installation can be customized using the standard CMake options. For example, one can provide an alternative installation directory for HiOp by using
$> cmake -DCMAKE_INSTALL_PREFIX=/usr/lib/hiop ..'
- Enable/disable MPI: -DWITH_MPI=[ON/OFF] (by default ON)
- Ultra safety checks: -DEEP_CHECKING=[ON/OFF] (by default ON) used for increased robustness and self-diagnostics. Disabling DEEP_CHECKING usually provides 30-40% execution speedup in HiOp.
For example:
$> cmake -DWITH_MPI=ON -DEEP_CHECKING=ON ..
$> make
$> make test
$> make install
- -DCMAKE_BUILD_TYPE=Release will build the code with the optimization flags on
- -DCMAKE_CXX_FLAGS="-O3" will enable a high level of compiler code optimization
HiOp requires LAPACK and BLAS. MPI is optional. All these dependencies are automatically detected by the build system.
HiOp has been developed under the financial support of:
- Lawrence Livermore National Laboratory, through the LDRD program
- Department of Energy, Office of Advanced Scientific Computing Research
Copyright (c) 2017, Lawrence Livermore National Security, LLC. All rights reserved. Produced at the Lawrence Livermore National Laboratory. LLNL-CODE-742473. Written by Cosmin G. Petra, [email protected].
HiOp is free software; you can modify it and/or redistribute it under the terms of the BSD 3-clause license. See COPYRIGHT and LICENSE for complete copyright and license information.