[Ipopt] Building IPOPT on MAC using Intel MKL

Andreas Waechter andreasw at watson.ibm.com
Thu Dec 31 10:38:32 EST 2009


Hi Simeon,

Sorry for the late reply.

I'm glad you got things to work in the end, I just wanted to follow up 
with a comment:

In principle, Ipopt compilation should work if you have ifort instead of 
gfortran (as long as your Fortran compiler is consistent with your C and 
C++ compilers).  If you want to see the error message that the configure 
script complains about, you need to look into the correct config.log file 
(since Ipopt's configure is running recursively, there are a number of 
such files).  My guess is that you would find the MKL BLAS error in 
ThirdParty/Blas/config.log.  The instructions at

https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting#ProblemsDuringConfiguration

might be helpful.

A Happy New Year to all!

Andreas

On Thu, 17 Dec 2009, Simeon Nifos wrote:

> Dear Andreas,
> I forgot to mention that I do not have gfortran installed in my system
> as it was not available on the Fink-commander and the configuration
> script is using ifort compiler.
>
> I just found a gfortran package for MAC installed it and Ipopt was
> build fine using the first configure command.
>
> What happens however, if somebody doesn't have gfortran installed?
>
> Best,
> Simeon.
>
> On Thu, Dec 17, 2009 at 4:41 PM, Simeon Nifos <archwndas at googlemail.com> wrote:
>> Dear Andreas,
>> Thank you for the really great piece of software but mostly for time
>> you spend supporting all your users. I have one of the latest MAC
>> Pros, and I have a hard time to configure Ipopt. The configure command
>> I used is:
>>
>>  CC=gcc CXX=g++ ./configure
>> --with-blas="-L/opt/mkl/lib/32 -lmkl_sequential -lmkl_intel -lmkl_core"
>> --with-lapack="-L/opt/mkl/lib/32 -lmkl_lapack"
>> --with-pardiso="-L/opt/pardiso -lpardiso400_GNU_MACOSX32 -lgomp -lgfortran"
>>
>> Configure stops when it is trying to see if my BLAS provided library
>> works, complaining that it doesn't. I checked the config.log but I
>> didn't find some useful information there to help me understand what
>> goes wrong. It would be very helpful for us if the config.log included
>> the output of the compilation performed for each test, as for instance
>> when you are trying to figure out if BLAS works or not. MAC OS is a
>> bit tricky because you have to do the following if you want things to
>> run when linking to shared libraries:
>>
>> $ export DYLD_LIBRARY_PATH=/opt/mkl/lib/32
>>
>> same story as in Linux but with different name. I have another
>> blas-benchmark code of mine where I test the performance of different
>> blas libraries on dgemv, dgemm, dtrsv etc. If I provide the above
>> defined blas and export command everything compiles links and runs
>> fine.
>>
>> Disappointed, I tried another trick. I ran the get.Blas script in
>> ThirdParty/Blas. I changed the configured command to:
>>
>>  CC=gcc CXX=g++ ./configure ,
>>
>> hoping that after everything is done and libraries have been created,
>> I could link with MKL BLAS and Pardiso without problems. However,
>> after successful configuration the command
>>
>> $ make
>>
>> stopped unexpectedly with the following errors:
>>
>> IpBlas.cpp:16: error: 'ddot' was not declared in this scope
>> IpBlas.cpp:16: error: 'DDOT' was not declared in this scope
>> IpBlas.cpp:16: error: initializer expression list treated as compound expression
>> IpBlas.cpp:16: error: expected ',' or ';' before '(' token
>> IpBlas.cpp:19: error: redefinition of 'double F77_FUNC'
>> IpBlas.cpp:16: error: 'double F77_FUNC' previously defined here
>> IpBlas.cpp:19: error: 'dnrm2' was not declared in this scope
>> IpBlas.cpp:19: error: 'DNRM2' was not declared in this scope
>> IpBlas.cpp:21: error: redefinition of 'double F77_FUNC'
>> IpBlas.cpp:16: error: 'double F77_FUNC' previously defined here
>> IpBlas.cpp:21: error: 'dasum' was not declared in this scope
>> IpBlas.cpp:21: error: 'DASUM' was not declared in this scope
>> IpBlas.cpp:23: error: conflicting declaration 'ipfint F77_FUNC'
>> IpBlas.cpp:16: error: 'F77_FUNC' has a previous declaration as 'double F77_FUNC'
>> IpBlas.cpp:23: error: 'idamax' was not declared in this scope
>> IpBlas.cpp:23: error: 'IDAMAX' was not declared in this scope
>> IpBlas.cpp:25: error: variable or field 'F77_FUNC' declared void
>>
>> and many more errors like the above ones.
>>
>> Any help would be more than welcome.
>>
>> All my best,
>> Simeon.
>>
>
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>
>
>


More information about the Ipopt mailing list