coin-or / Ipopt

COIN-OR Interior Point Optimizer IPOPT
https://coin-or.github.io/Ipopt
Other
1.41k stars 281 forks source link

MUMPS error #740

Closed matheusdiogenesandrade closed 8 months ago

matheusdiogenesandrade commented 8 months ago

Overview:

I am trying to run Ipopt compiled with Mumps + ASL + HSL + Lapack, and when running the compiled version, I obtain the following error.

** Instance Error 1 in DMUMPS_F77

The performed steps were:

./configure --with-hsl-lflags="-L$HOME/ThirdParty/HSL/build -lcoinhsl" 
    --with-lapack-lflags="-L$HOME/ThirdParty/Lapack/build/lib -lcoinlapack" 
    --with-mumps-lflags="-L$HOME/ThirdParty/Mumps/build -lcoinmumps" 
    --with-mumps-cflags="-I$HOME/ThirdParty/Mumps/MUMPS/include -I$HOME/ThirdParty/Mumps" 
    --with-asl-lflags="-L$HOME/ASL -lcoinasl" 
    --with-asl-cflags="-I$HOME/ASL/solvers"

make

sudo make install

make test

Tech stack:

Thanks and regards.

Issue related to #739.

matheusdiogenesandrade commented 8 months ago

Solved!

I was wrongly compiling it, now follows the right flags to do so:

../configure --with-hsl-lflags="-L$HOME/ThirdParty/HSL/build -lcoinhsl" 
    --with-lapack-lflags="-L$HOME/ThirdParty/Lapack/build/lib -lcoinlapack" 
    --with-asl-lflags="-L$HOME/ASL -lcoinasl" --with-asl-cflags="-I$HOME/ASL/solvers" 
    --with-spral-lflags="-L$HOME/Spral/lib -lasan -latomic -lgcc_s -lgfortran -lgomp -lhwasan -lhwloc -litm -llsan -lmetis -lobjc -lopenblas -lquadmath -lspral -lssp -ltsan -lubsan" 
    --with-spral-cflags="-I$HOME/Spral/include" 
    --with-intsize=64

Just removed the Mumps, and added the Spral and --with-intsize=64, although no idea it worked.

Thanks.

svigerske commented 8 months ago

I cannot say why MUMPS reported an Instance Error 1. Haven't seen this before.

Building Ipopt for 64bit integer size requires that also dependencies support this. See https://coin-or.github.io/Ipopt/INSTALL.html#INT64_BUILD

In general, building Ipopt against not-yet-installed versions of dependencies is not supported. It should be easier if you build and install one project after another. configure should then also detect automatically what is available (except for lapack from ThirdParty-Lapack, as this is deprecated) and which flags are needed, in particular if you install everything under the same prefix. coinbrew automates this. Ipopt installation instructions are in the docu: https://coin-or.github.io/Ipopt/INSTALL.html