Skip to content
/ hiop Public
forked from LLNL/hiop

HPC solver for nonlinear optimization problems

License

Notifications You must be signed in to change notification settings

junkudo/hiop

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HiOp - HPC solver for optimization

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.

Build/install instructions

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 ..'

HiOp-specific build options

  • 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

Other useful options to use with CMake

  • -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

Dependencies

HiOp requires LAPACK and BLAS. MPI is optional. All these dependencies are automatically detected by the build system.

Acknowledgments

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

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, petra1@llnl.gov.

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.

About

HPC solver for nonlinear optimization problems

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 99.0%
  • CMake 1.0%