[Ipopt] Homebrew formula for IPOPT not compatible with HSL, Metis

Joel Andersson j.a.e.andersson at gmail.com
Mon Jun 16 10:32:13 EDT 2014


I tried out the homebrew formula for IPOPT, but I am struggling to get it
to work with HSL.

Previously, when I built from sources, I have just put the HSL stuff in
IPOPT source and had it built together with IPOPT. But I assume that if I
use Homebrew to build IPOPT, I have to rely on the linear solver loader
mechanism. Correct?

So I obtained and installed the "HSL for IPOPT" package from
http://www.hsl.rl.ac.uk/ipopt/. I just used default options for "configure
- make - make install".

I then brewed IPOPT (I had to use the --with-openblas option to get it to
brew correctly). Out of the box, IPOPT was not able to find the compiled
HSL library, but failed with the error:

"Tried to obtain MA57 from shared library "libhsl.dylib", but the following
error occured:
dlopen(libhsl.dylib, 2): image not found"

Strangely, there appears to be a name mismatch between the library produced
by "HSL for IPOPT" and IPOPT, where IPOPT expect libhsl.dylib but a
libcoinhsl.dylib is produced. Is this a bug or do I use the wrong HSL
library? If I manually add a symbolic link using "ln -s libcoinhsl.dylib
libhsl.dylib", it does appear to work, but I still get the following
(recoverable) error: "Failed to load 'libmetis.so' - using fallback AMD

I have a brewed metis ("brew install metis"), but the shared library is of
course called libmetis.dylib and not libmetis.so on my Mac. I tried to make
another symlink "ln -s libmetis.dylib libmetis.so", but it does not appear
to help (or I do not understand the output):

This is Ipopt version 3.11.7, running with linear solver ma57.

Number of nonzeros in equality constraint Jacobian...:      394
Number of nonzeros in inequality constraint Jacobian.:        0
Number of nonzeros in Lagrangian Hessian.............:      295

 Runtime parameters:
   Objective type: Unknown!
   Coarsening type: Unknown!
   Initial partitioning type: Unknown!
   Refinement type: Unknown!
   Perform a 2-hop matching: Yes
   Number of balancing constraints: 1
   Number of refinement iterations: 0
   Random number seed: 1581471676
   Number of separators: 256
   Compress graph prior to ordering: Yes
   Detect & order connected components separately: No
   Prunning factor for high degree vertices: -184828960.000000
   Allowed maximum load imbalance: 2007201.000

Input Error: Incorrect objective type.
 nbrpool statistics
        nbrpoolsize:            0   nbrpoolcpos:            0
    nbrpoolreallocs:            0

Total number of variables............................:      148

Does anyone know how to address these issues?

Best regards,

had to struggle a bit to get it working with HSL, so I want to know

ln -s libmetis.dylib libmetis.so
ln -s libcoinhsl.dylib libhsl.dylib
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20140616/69e122e6/attachment.html>

More information about the Ipopt mailing list