[SCIP] SCIP with IPOPT with HSL

Stefan Vigerske svigerske at gams.com
Thu Oct 7 09:30:57 CEST 2021


Hi,

there is a way, depending on how the ipopt in this scip debian package 
was build.
Try setting

heuristics/subnlp/nlpoptfile = "ipopt.opt"
heuristics/subnlp/nlpverblevel = 1

and create a file ipopt.opt with content

linear_solver ma27


With the SCIP 7 that I found installed somewhere, this gives me the output

  time | node  | left  |LP iter|LP it/n|mem/heur|mdpt |vars |cons |rows 
|cuts |sepa|confs|strbr|  dualbound   | primalbound  |  gap   | compl.
   0.0s|     1 |     0 |   128 |     - |  1050k |   0 |  47 |  40 | 108 
|   0 |  0 |   0 |   0 |-1.879054e+00 |      --      |    Inf | unknown
calling subnlp heuristic
Exception of type: OPTION_INVALID in file 
"/nfs/optimi/usr/sw/Ipopt-3.13.2-src/Ipopt/src/Algorithm/IpAlgBuilder.cpp" 
at line 268:
  Exception message: Selected linear solver MA27 not available.
Tried to obtain MA27 from shared library "libhsl.so", but the following 
error occured:
libhsl.so: cannot open shared object file: No such file or directory
[nlpi_ipopt.cpp:1167] ERROR: Ipopt returned with application return 
status -12


So the information that Ipopt should use MA27 is received, but it fails 
because Ipopt has been build without the HSL codes. Unless it has been 
disabled in this build of Ipopt, Ipopt then tried to load a library 
libhsl.so with the HSL codes at runtime 
(https://coin-or.github.io/Ipopt/INSTALL.html#LINEARSOLVERLOADER). So if 
you have such a library around, then you just need to make sure that it 
can be found.


This only applies to Ipopt called by the subnlp primal heuristic. Other 
heuristics that call Ipopt do not have a "nlpoptfile" option (or I 
forgot that they have), but subnlp should be the most important one.

If you work with the C API, then you can use function 
SCIPsetModifiedDefaultSettingsIpopt() 
(https://www.scipopt.org/doc-7.0.3/html/group__NLPIS.php#gaf626a99a6be56ab52994fe11e6ac440f) 
to set option "linear_solver ma27" for all calls to Ipopt.


With the next major release, things will change and there will be a SCIP 
  option nlpi/ipopt/linear_solver to set the linear solver of Ipopt for 
all calls to Ipopt.

Stefan


On 10/6/21 18:04, Marco Correia wrote:
> Hi,
> 
> Is it possible to install SCIP with IPOPT with support for the HSL
> libraries (the latter already installed) using the scip debian package, or
> do I need to install SCIP from source? If so, do I also need to install
> IPOPT from source?
> 
> Thanks
> Marco
> 
> 
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
> 



More information about the Scip mailing list