coin-or/Ipopt

question: any NLP solvers behind OPOPT has easy to deploy routine?

dzmitry-lahoda opened this issue · 6 comments

seems all NLP solvers are hard to automate to download (named auth)

just came from there scipopt/scip#82

what is best NLP solver to try?

Ipopt requires at least one of the following solvers for systems of linear equations:

MA27, MA57, HSL_MA77, HSL_MA86, or HSL_MA97 from the [Harwell Subroutines Library](http://hsl.rl.ac.uk/) (HSL). It is recommended to use project [ThirdParty-HSL](https://github.com/coin-or-tools/ThirdParty-HSL) to build a HSL library for use by Ipopt or to use [prebuild macOS/Windows libraries from STFC](https://licences.stfc.ac.uk/product/libhsl), see the [Ipopt installation instruction](https://coin-or.github.io/Ipopt/INSTALL.html#DOWNLOAD_HSL).
[Parallel Sparse Direct Linear Solver](http://www.pardiso-project.org/) (Pardiso). Note, that the Intel Math Kernel Library (MKL) also includes a version of Pardiso, but the one from Pardiso Project often offers better performance.
[Sparse Parallel Robust Algorithms Library](https://github.com/ralna/spral) (SPRAL).
[MUltifrontal Massively Parallel sparse direct Solver](http://mumps.enseeiht.fr/) (MUMPS). It is highly recommended to use project [ThirdParty-Mumps](https://github.com/coin-or-tools/ThirdParty-Mumps) to build a MUMPS library for use by Ipopt.
[Watson Sparse Matrix Package](http://www.research.ibm.com/projects/wsmp)

Default build require HSL.

How to set to use SPRAL or MUMPS

both are OSS

https://github.com/scivision/mumps

https://github.com/ralna/spral

Installation instructions for Ipopt can be found in the documentation: https://coin-or.github.io/Ipopt/INSTALL.html#EXTERNALCODE

inrestingly, i see that this build uses AMPL https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/science/math/ipopt/default.nix

whole while when I try to use IPOPT, it tries to load HSL library.

I assume logic can be you compiled with AMPL headers, but you did not provided AMPL so files, so I will try HSL and fail on it. Or on the way to compile AMPL really was not applied.

@svigerske is AMPL configuration makes HSL code to be ignore (not even compiled into Ipopt), so that if I see HSL AMPL just was not applied?

AMPL is an algebraic modeling system, HSL is a set of linear algebra routines. They have nothing to do with each other. Whether Ipopt is build with AMPL interface does not affect Ipopt's choice of the linear solver. I explained in scipopt/scip#82 (comment) why Ipopt may try to load a HSL library.

thank. it is finally clear. i have build MUMPS with double and int64 support. trying.