[Ipopt] Ipopt terminates
Paul van Hoven
paul.van.hoven at googlemail.com
Tue Mar 15 07:01:22 EDT 2011
Now, I found out that the folder
/usr/lib/../lib64/ contains several compiled versions of blas, namely
libblas.a libblas_pic.a libblas.so libblas.so.3 libblas.so.3.1.1
I suspect the correct version would be libblas_pic.a.
The verbose option of the matlab mex command gave the following information
----------------------------------------------------------------
-> MATLAB = /net/matlab/Matlab2009b
-> CC = /usr/site-local/bin/g++-4.2
-> CC flags:
CFLAGS = -ansi -D_GNU_SOURCE -fexceptions -fPIC
-fno-omit-frame-pointer -pthread
CDEBUGFLAGS = -g
COPTIMFLAGS = -O3 -pipe -DNDEBUG -pedantic-errors
-Wimplicit -Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith
-Wwrite-strings -Wconversion -Wno-unknown-pragmas -fPIC -fexceptions
-DMATLAB_MEXFILE
CLIBS =
-Wl,-rpath-link,/net/matlab/Matlab2009b/bin/glnxa64
-L/net/matlab/Matlab2009b/bin/glnxa64 -lmx -lmex -lmat -lm -lstdc++
arguments = -DMX_COMPAT_32
-> CXX = /usr/site-local/bin/g++-4.2
-> CXX flags:
CXXFLAGS = -ansi -D_GNU_SOURCE -fPIC
-fno-omit-frame-pointer -pthread
CXXDEBUGFLAGS = -g
CXXOPTIMFLAGS = -O3 -pipe -DNDEBUG -pedantic-errors
-Wimplicit -Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith
-Wwrite-strings -Wconversion -Wno-unknown-pragmas -fPIC -fexceptions
-DMATLAB_MEXFILE
CXXLIBS =
-Wl,-rpath-link,/net/matlab/Matlab2009b/bin/glnxa64
-L/net/matlab/Matlab2009b/bin/glnxa64 -lmx -lmex -lmat -lm
arguments = -DMX_COMPAT_32
-> FC = g95
-> FC flags:
FFLAGS = -fexceptions -fPIC -fno-omit-frame-pointer
FDEBUGFLAGS = -g
FOPTIMFLAGS = -O
FLIBS =
-Wl,-rpath-link,/net/matlab/Matlab2009b/bin/glnxa64
-L/net/matlab/Matlab2009b/bin/glnxa64 -lmx -lmex -lmat -lm
arguments = -DMX_COMPAT_32
-> LD = /usr/site-local/bin/g++-4.2
-> Link flags:
LDFLAGS = -pthread -shared
-Wl,--version-script,/net/matlab/Matlab2009b/extern/lib/glnxa64/mexFunction.map
-Wl,--no-undefined
LDDEBUGFLAGS = -g
LDOPTIMFLAGS = -O3 -pipe -DNDEBUG -pedantic-errors
-Wimplicit -Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith
-Wwrite-strings -Wconversion -Wno-unknown-pragmas -fPIC -fexceptions
-DMATLAB_MEXFILE -Wl,--rpath
-Wl,/homes/numerik/hoven/CoinIpopt/build/lib/coin -Wl,--rpath
-Wl,/homes/numerik/hoven/CoinIpopt/build/lib/coin/ThirdParty
LDEXTENSION = .mexa64
arguments = -L/homes/numerik/hoven/Mex/Ipopt/lib/coin
-L/homes/numerik/hoven/Mex/Ipopt/lib/coin/ThirdParty
-L/net/site-local.linux64/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.2.4
-L/net/site-local.linux64/bin/../lib/gcc
-L/usr/site-local/lib/gcc/x86_64-unknown-linux-gnu/4.2.4
-L/net/site-local.linux64/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.2.4/../../../../lib64
-L/usr/site-local/lib/gcc/x86_64-unknown-linux-gnu/4.2.4/../../../../lib64
-L/lib/../lib64 -L/usr/lib/../lib64
-L/net/site-local.linux64/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.2.4/../../..
-L/usr/site-local/lib/gcc/x86_64-unknown-linux-gnu/4.2.4/../../..
-lipopt -llapack -lblas -ldl -lcoinhsl -lgfortranbegin -lgfortran -lm
-lgcc_s
-> LDCXX =
-> Link flags:
LDCXXFLAGS =
LDCXXDEBUGFLAGS =
LDCXXOPTIMFLAGS =
LDCXXEXTENSION =
arguments = -L/homes/numerik/hoven/Mex/Ipopt/lib/coin
-L/homes/numerik/hoven/Mex/Ipopt/lib/coin/ThirdParty
-L/net/site-local.linux64/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.2.4
-L/net/site-local.linux64/bin/../lib/gcc
-L/usr/site-local/lib/gcc/x86_64-unknown-linux-gnu/4.2.4
-L/net/site-local.linux64/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.2.4/../../../../lib64
-L/usr/site-local/lib/gcc/x86_64-unknown-linux-gnu/4.2.4/../../../../lib64
-L/lib/../lib64 -L/usr/lib/../lib64
-L/net/site-local.linux64/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.2.4/../../..
-L/usr/site-local/lib/gcc/x86_64-unknown-linux-gnu/4.2.4/../../..
-lipopt -llapack -lblas -ldl -lcoinhsl -lgfortranbegin -lgfortran -lm
-lgcc_s
----------------------------------------------------------------
As you can see it uses the "/lib/../lib64" presumely for blas. How do I
have to modify the matlab interface Makefile such that the correct PIC
version of blas is used?
Paul
Paul van Hoven schrieb:
> Hi
>
> I tried to recompile Ipopt with the option "-DFUNNY_LAPACK_FINT"
> turned on. But then the matlab interface won't compile. I get the
> following compiliation error:
>
> /usr/site-local/bin/g++-4.2 -O3 -pipe -DNDEBUG -pedantic-errors
> -Wimplicit -Wparentheses -Wreturn-type -Wcast-qual -Wall
> -Wpointer-arith -Wwrite-strings -Wconversion -Wno-unknown-pragmas
> -fPIC -fexceptions -DFUNNY_LAPACK_FINT -DMATLAB_MEXFILE -Wl,--rpath
> -Wl,/homes/numerik/hoven/Mex/Ipopt/lib/coin -Wl,--rpath
> -Wl,/homes/numerik/hoven/Mex/Ipopt/lib/coin/ThirdParty -pthread
> -shared
> -Wl,--version-script,/net/matlab/Matlab2009b/extern/lib/glnxa64/mexFunction.map
> -Wl,--no-undefined -o "ipopt.mexa64" "matlabexception.o"
> "matlabfunctionhandle.o" "matlabjournal.o" "iterate.o"
> "ipoptoptions.o" "options.o" "sparsematrix.o"
> "callbackfunctions.o" "matlabinfo.o" "matlabprogram.o" "ipopt.o"
> -L/homes/numerik/hoven/Mex/Ipopt/lib/coin
> -L/homes/numerik/hoven/Mex/Ipopt/lib/coin/ThirdParty
> -L/net/site-local.linux64/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.2.4
> -L/net/site-local.linux64/bin/../lib/gcc
> -L/usr/site-local/lib/gcc/x86_64-unknown-linux-gnu/4.2.4
> -L/net/site-local.linux64/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.2.4/../../../../lib64
> -L/usr/site-local/lib/gcc/x86_64-unknown-linux-gnu/4.2.4/../../../../lib64
> -L/lib/../lib64 -L/usr/lib/../lib64
> -L/net/site-local.linux64/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.2.4/../../..
> -L/usr/site-local/lib/gcc/x86_64-unknown-linux-gnu/4.2.4/../../..
> -lipopt -llapack -lblas -ldl -lcoinhsl -lgfortranbegin -lgfortran -lm
> -lgcc_s -Wl,-rpath-link,/net/matlab/Matlab2009b/bin/glnxa64
> -L/net/matlab/Matlab2009b/bin/glnxa64 -lmx -lmex -lmat -lm
>
> /usr/bin/ld: /usr/lib/../lib64/libblas.a(isamax.o): relocation
> R_X86_64_32 against `a local symbol' can not be used when making a
> shared object; recompile with -fPIC
> /usr/lib/../lib64/libblas.a: could not read symbols: Bad value
> collect2: ld returned 1 exit status
>
> mex: link of ' "ipopt.mexa64"' failed.
>
> make: *** [ipopt.mexa64] Error 1
>
> Why does that happen now?
>
> Paul
>
>
>
> Andreas Waechter schrieb:
>> Hi
>>
>> Well, it might also just be a problem with Lapack and matlab and
>> 64bit and funny integer types. The error message is from LAPACK, and
>> given that the signature is
>>
>> SUBROUTINE DPOTRF( UPLO, N, A, LDA, INFO )
>>
>> CHARACTER UPLO
>>
>> INTEGER INFO, LDA, N
>>
>> DOUBLE PRECISION A( LDA, * )
>>
>> and therefore LDA seems to have an illegal value, it might be that
>> Fortran and C integer types do not match.
>>
>> This might be related to a recent discussion on the Ipopt mailing list:
>>
>> http://list.coin-or.org/pipermail/ipopt/2011-March/002376.html
>>
>> And I have also seen a similar problem in a different context (not
>> with matlab but also related to different integer types). For this
>> specific case, I added some code in Ipopt/src/LinAlg/IpLapack.cpp
>> (look for the macro FUNNY_LAPACK_FINT). I suggest you try to
>> activate this code by configuring with
>>
>> ADD_CXXFLAGS='-DFUNNY_LAPACK_FINT'
>>
>> and recompiling everything (after 'make clean'). Not sure if that
>> will help, but it might be worth a try...
>>
>> Andreas
>>
>> On Mon, 14 Mar 2011, Stefan Vigerske wrote:
>>
>>> Hi,
>>>
>>> it probably means that the jacobian or hessian contains values like nan
>>> or inf, which may be a result from a nondifferentiability of one of
>>> your
>>> functions in the current point.
>>>
>>> There is the Ipopt option check_derivatives_for_naninf
>>> http://www.coin-or.org/Ipopt/documentation/node89.html
>>> which may help to verify this.
>>>
>>> Stefan
>>>
>>>> I'm using ipopt with the matlab interface. So far everything went fine
>>>> and I had no problems. But now I have a problem, that can be solve
>>>> with
>>>> matlab's fmincon but not with ipopt. When I run the problem with
>>>> ipopt I
>>>> get the following error message
>>>>
>>>> ** On entry to DPOTRF parameter number 4 had an illegal value
>>>>
>>>> I do not understand what this means.
>>>>
>>>> Paul
>>>>
>>>> _______________________________________________
>>>> Ipopt mailing list
>>>> Ipopt at list.coin-or.org
>>>> http://list.coin-or.org/mailman/listinfo/ipopt
>>>>
>>>
>>>
>>> --
>>> Stefan Vigerske
>>> Humboldt University Berlin, Numerical Mathematics
>>> http://www.math.hu-berlin.de/~stefan
>>>
>>> _______________________________________________
>>> Ipopt mailing list
>>> Ipopt at list.coin-or.org
>>> http://list.coin-or.org/mailman/listinfo/ipopt
>>>
>>>
>
More information about the Ipopt
mailing list