[SCIP] HSL library for IPOPT=true option

Ambros Gleixner gleixner at zib.de
Mon Jun 5 15:34:12 CEST 2017


Hi Oleg,


On 01.06.2017 23:40, Shigiltchoff, Oleg wrote:
> Hi,
> 
> Thank you for the pointer to Mumps. It does work now. However the performance is somewhat slow: ~300,000 micro-seconds against ~30 micro-second for IMSL, which is 4 orders of magnitude difference. Our problem contains one quadratic and three linear constraints. Would it considerably speed up the execution, if we buy and use MA27/HSL? Are there any other ways to improve SCIP performance?

Both questions are hard to answer in general.  If you are interested, we 
can have a look at some of your instances.  You could share them in a 
personal message off the mailing list.

Best,
Ambros


> 
> Thanks,
> 
> Oleg
> 
> -----Original Message-----
> From: Stefan Vigerske [mailto:stefan at math.hu-berlin.de]
> Sent: Tuesday, May 30, 2017 10:12 AM
> To: Shigiltchoff, Oleg <oleg.shigiltchoff at sap.com>; scip at zib.de
> Subject: Re: [SCIP] HSL library for IPOPT=true option
> 
> Hi,
> 
> someone must have build Ipopt on your system. When you build SCIP the
> first time with IPOPT=true, it must have asked you where to find that
> Ipopt installation. The SCIP buildsystem has then created a symlink in
> lib/static/ that points to this Ipopt build.
> The one who has build Ipopt on your system seems to have forgotten to
> include any linear solver in the Ipopt build. Please contact the person
> responsible for your Ipopt installation to rebuild Ipopt with Mumps.
> 
> In the original e-mail you said you were interested in activating the
> Lapack link, so I thought you didn't need solving NLPs.
> 
> Stefan
> 
> On 05/30/2017 03:32 PM, Shigiltchoff, Oleg wrote:
>> Hi Stefan,
>>
>> Thank you for your reply. I cannot turn off NLP, that was the whole point to solve my problem with quadratic constraints. I can however consider to replace the default MA27 with Mumps. I'm not sure though how to enforce the build with Mumps. I don't build Ipopt separately, I just build SCIP with option IPOPT=true. Can you give me some pointers on how to redirect Ipopt from MA27 to Mumps?
>>
>> Thank you,
>>
>> Oleg
>>
>> -----Original Message-----
>> From: Stefan Vigerske [mailto:stefan at math.hu-berlin.de]
>> Sent: Saturday, May 27, 2017 6:47 AM
>> To: Shigiltchoff, Oleg <oleg.shigiltchoff at sap.com>; scip at zib.de
>> Subject: Re: [SCIP] HSL library for IPOPT=true option
>>
>> Hi,
>>
>> if Ipopt was build without any linear solvers, then it will try to load
>> MA27 from a libhsl.so library at runtime. It's up to the user to provide
>> this library. If Ipopt was build with a linear solver (e.g., MA27,
>> Mumps), then it will use the one it was build with.
>> HSL provides a special Ipopt package of their solvers at
>> http://www.hsl.rl.ac.uk/ipopt/ One can use this to build Ipopt with HSL
>> codes, or to build a libhsl.so that Ipopt can load at runtime. HSL codes
>> are free for academics, I don't know what would apply for SAP.
>>
>> Alternatively, you could just build Ipopt with Mumps as linear solver.
>> That is open source, though performance can be different than with MA27.
>> But if you are mainly interested in having SCIP use the Lapack interface
>> of Ipopt, then that doesn't matter.
>>
>> Finally, you could also try to turn off everything that tries to solve a
>> NLP in SCIP, so it doesn't even try to call Ipopt as a solver. By
>> setting parameters this would be, e.g.,
>>      constraints/quadratic/gaugecuts = FALSE
>>      constraints/quadratic/sepanlpmincont = 2.0
>>      heuristics/subnlp/freq = -1
>>      heuristics/nlpdiving/freq = -1
>> Or just remove the creation of nlpi-ipopt towards the end of
>> src/scip/scipdefplugins.c
>>
>> Hope that helps,
>> Stefan
>>
>>
>> On 05/26/2017 08:43 PM, Shigiltchoff, Oleg wrote:
>>> I'm trying to use SCIP in our c++ library. I am compiling (suse linux) with IPOPT=true option to activate LAPACK (fortran library). After installing libgfortran.so.3,the linking gives the following error (see below). Apparently I need libhsl.so library, which is available at https://github.com/casadi/casadi/wiki/Obtaining-HSL. Now, the question is if I need HSL production license? Our company (SAP) has SCIP license for OFL (our SAP product), but they don't use LAPACK. So, if HSL is part of SCIP, how do I obtain libhsl.co library?
>>>
>>> Original Problem:
>>> STATISTICS
>>>      Problem name     : problem1
>>>      Variables        : 5 (0 binary, 0 integer, 0 implicit integer, 5 continuous)
>>>      Constraints      : 0 initial, 2 maximal
>>> OBJECTIVE
>>>      Sense            : minimize
>>> VARIABLES
>>>      [continuous] <x1>: obj=0, original bounds=[-3,3]
>>>      [continuous] <x2>: obj=0, original bounds=[-3,3]
>>>      [continuous] <x3>: obj=0, original bounds=[-3,3]
>>>      [continuous] <x4>: obj=0, original bounds=[-3,3]
>>>      [continuous] <obj>: obj=1, original bounds=[-inf,+inf]
>>> CONSTRAINTS
>>>      [linear] <constrj>:  -0.103111371376616<x1>[C] -0.0918254105621112<x2>[C] -0.0360826398483436<x3>[C] +0.0683195483527113<x4>[C] >= -1;
>>>      [quadratic] <constrm>:  +13.1200771409643<x1>[C] +57.2279181564708<x1>[C]^2 +3.95909498225939<x2>[C] +53.2052128347995<x2>[C]^2 +23.5748721949639<x3>[C] +51.4737147305889<x3>[C]^2 +23.2133345748624<x4>[C] +41.831859605578<x4>[C]^2 -<obj>[C] +95.7868558769789<x1>[C]<x2>[C] +91.0132323375585<x1>[C]<x3>[C] +67.4959089332421<x1>[C]<x4>[C] +97.4849344358596<x2>[C]<x3>[C] +74.6177976486421<x2>[C]<x4>[C] +79.4290929005315<x3>[C]<x4>[C] <= 0;
>>> END
>>>
>>> Solving...
>>> feasible solution found by trivial heuristic after 0.0 seconds, objective value 0.000000e+00
>>> presolving:
>>> (round 1, fast)       0 del vars, 1 del conss, 0 add conss, 1 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 0 clqs
>>> (round 2, fast)       0 del vars, 1 del conss, 0 add conss, 2 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 0 clqs
>>> presolving (3 rounds: 3 fast, 1 medium, 1 exhaustive):
>>>     0 deleted vars, 1 deleted constraints, 0 added constraints, 2 tightened bounds, 0 added holes, 0 changed sides, 0 changed coefficients
>>>     0 implications, 0 cliques
>>> presolved problem has 5 variables (0 bin, 0 int, 0 impl, 5 cont) and 1 constraints
>>>          1 constraints of type <quadratic>
>>> Presolving Time: 0.00
>>> transformed 1/2 original solutions to the transformed problem space
>>> Exception of type: OPTION_INVALID in file "IpAlgBuilder.cpp" at line 271:
>>>     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
>>> [src/nlpi/nlpi_ipopt.cpp:1110] ERROR: Ipopt returned with application return status -12
>>> [src/nlpi/nlpi.c:503] ERROR: Error <0> in function call
>>> [src/scip/cons_quadratic.c:7117] ERROR: Error <0> in function call
>>> [src/scip/cons_quadratic.c:7286] ERROR: Error <0> in function call
>>> [src/scip/cons_quadratic.c:10662] ERROR: Error <0> in function call
>>> [src/scip/cons.c:2623] ERROR: Error <0> in function call
>>> [src/scip/set.c:4559] ERROR: Error <0> in function call
>>> [src/scip/scip.c:13864] ERROR: Error <0> in function call
>>> [src/scip/scip.c:14650] ERROR: Error <0> in function call
>>> [../../AFL/SCAL/EDS/optimize.cpp:233] ERROR: Error <0> in function call
>>>
>>>
>>>
>>> _______________________________________________
>>> Scip mailing list
>>> Scip at zib.de
>>> https://listserv.zib.de/mailman/listinfo/scip
>>>
>>
>>
> 
> 

-- 
Ambros Gleixner, Zuse Institute Berlin, http://www.zib.de/gleixner


More information about the Scip mailing list