[Ipopt] Matlab interface problem when using hessian_approximation
Andreas Waechter
andreasw at watson.ibm.com
Fri Apr 30 09:50:53 EDT 2010
Hi Peter,
The problem could be that different versions of the LAPACK (maybe also
BLAS) libraries get mixed up...
It might be the case that when you compile the Ipopt code, it is linking
against whatever BLAS/LAPACK you provide or is automatically found on
your system, and when you run the stand-alone code these versions of the
libraries are used. But Matlab comes with its own BLAS/LAPACK, and there
might be inconsistencies... (I also noticed on some 64bit systems some
problems lately that I still haven't fixed...)
You could try to configure the Ipopt code to use the BLAS/LAPACK coming
with Matlab (I think it might be the mkl library), but I don't know if
that will work, you might just end up seeing the same error now even in
your stand-alone... The issue might be that for some reason the integer
type of the Matlab version of LAPACK is non-standard...?
Maybe one thing you can try is to download the netlib source for BLAS and
LAPACK, and force its inclusing into the Ipopt library by configuring with
--with-blas=BUILD and --with-lapack=BUILD. Maybe the Ipopt code will then
not try to use the Matlab version of those libraries. However,
depending on the size of your problem and what linear solver you use in
Ipopt, you might see notso great performance since the netlib code is not
optimized...
Regards,
Andreas
On Fri, 30 Apr 2010, Peter Gehler wrote:
> Hello
>
> I am using IpOpt-3.7.0, Matlab R2010A, compiled with gcc,g++,gfortran version
> 4.3.2.
>
> I have the following problem when using the Matlab interface whenever I set
> hessian_approximation = limited_memory. For example in the included
> "examplehs051.m" I encounter the following problem:
>
> ========
>>> examplehs051
> This is Ipopt version 3.7.0, running with linear solver ma27.
>
> Number of nonzeros in equality constraint Jacobian...: 7
> Number of nonzeros in inequality constraint Jacobian.: 0
> Number of nonzeros in Lagrangian Hessian.............: 0
>
> ** On entry to DPOTRF parameter number 4 had an illegal value
> Erase is control-H (^H).
> ========
>
> The same is true for all included matlab examples whenever I change to
> include "options.ipopt.hessian_approximation = 'limited-memory';" I checked
> the c-examples in Ipopt/examples/ which work fine for both settings. I also
> compiled a version of the library with the mumps solver only instead of the
> HSL package but encounter the very same behaviour. I suspect that problem is
> caused by blas but since the command line version works, I am unsure how to
> resolve this problem.
>
> Best Regards, Peter
>
>
>
More information about the Ipopt
mailing list