Ipopt Build

What is Ipopt

Ipopt (Interior Point Optimizer) is an open source software package for large-scale nonlinear optimization. You can find the official documentation HERE.

How to Buid It

The Ipopt relies some dependencies. Make sure install them first.

  • LAPACK (Linear Algebra Package)
  • HSL (Harwell Subroutines Library)
  • ThirdParty-HSL

Compile And Install LAPACK

First we need to download the source code and compile to dynamic shared library.

wget https//github.com/Reference-LAPACK/lapack/archive/v3.9.0.tar.gz

The LAPACK is compiled to static library by default with unmodified rule, we need to change the 45th line of CMakeLists.txt file.

option(BUILD_SHARED_LIBS "Build shared libraries" ON)

Make build directory and we are good to go.

mkdir build && cd build
cmake ../
make
make install

Compile HSL

There are two versions of HSL available:

  • HSL Archive (freely available for personal commercial or non-commercial usage)
  • HSL Full (Academic use only)

To obtain the HSL code, you can follow the instructions here. To compile the HSL code via the COIN-OR Tools project ThirdParty-HSL.

git clone https://github.com/coin-or-tools/ThirdParty-HSL.git
cd ThirdParty-HSL
./configure
make
sudo make install

Compile Ipopt

If all the dependencies were correctly installed and default path /usr/local/lib64 was added to the LD_LIBRARY_PATH the Ipopt was very easy to compile. Just clone the project and create a build directory, config it then make.

git clone https://github.com/coin-or/Ipopt
cd Ipopt && mkdir build
../configure
make

After compiling the whole code, make sure executing make test to check if the Ipopt were working properly.

Lofi&Cafe

Blog about tech and life!


2021-03-08