[Coin-ipopt] Re: [Coin-discuss] IPOPT: build and linking questions

John Pye john at anu.edu.au
Mon Jul 23 19:57:10 EDT 2007


Hi Damien,

damien at khubla.com wrote:
> MUMPS can be a long compile depending on how you set it up.  It comes with
> 4 versions by default:  single and double precision real, and single and
> double precision complex.  If you build all 4 it definitely takes a while.
>  On *Nix/*Nux, you can change the MUMPS top-level makefile to just build
> the double-precision real version which speeds things up a bit.
>   

Packaging of MUMPS on Linux could be set up with four different packages
for each of these cases, so long as each .so can have a different name.
I take it that IPOPT only ever needs to the double precision version?
There will need to be a place where the *name* of the MUMPS shared
library can be specified to the configure options.

> Dynamically loading a MUMPS .so or dll is feasible and worth considering. 
> BUT:  Remember that IPOPT is used on Windows as well (MUMPS was first put
> into IPOPT on a Windows build before it was submitted to COIN) and the
> syntax for loading dynamic libraries on *Nix/*Nux and Windows is
> different.  There's only one major entry point for calling MUMPS, and
> making a dynamically-loadable library on both platforms is doable.  I'll
> have a look at the code in the next little while and try a few things out.
>   

If it is of any help, here is a file that is fairly well tested for
dlopening on both Windows and Linux, as well as having been used on
other platforms in the past as well:

http://ascendcode.cheme.cmu.edu/viewvc.cgi/code/branches/extfn/base/generic/utilities/ascDynaLoad.c?revision=1433&view=markup

It is worth noting that when you make use of LoadLibrary or dlopen you
also need to think about configuration of appropriate environment
variables eg LD_LIBRARY_PATH (*n*x) or PATH (Windows). In the above,
take a look at Asc_DynamicLoad and SearchArchiveLibraryPath.

If a MUMPS shared library were possible, it could be packaged as a
separate RPM/DEB available to Linux users from their standard
repositories. This would certainly make the job of getting started with
IPOPT that little bit easier for those people.

Cheers
JP




More information about the Coin-ipopt mailing list