[Ipopt] ipopt and mumps parallel solver

Andreas Waechter andreasw at watson.ibm.com
Mon Nov 29 18:09:46 EST 2010


Hi Zdenek,

Well, there is an unsupported distributed memory parallel version of Ipopt 
in the svn repository on COIN-OR.  You can get it via

svn co https://projects.coin-or.org/svn/Ipopt/branches/parallel

You enable the MPI version including "MPICC=mpicc MPICXX=mpicxx 
MPIF77=mpif77" (or whatever the names of your MPI compilers are) in the 
configure command line.

And you have to provide all necessary MUMPS libraries for your precompiled 
parallel MUMPS library.  For example, my command line looks like this:

onfigure MPICC=mpicc MPICXX=mpicxx MPIF77=mpif77 CXXFLAGS='-O3 -pipe' 
CFLAGS='-O3 -pipe' FFLAGS='-O3 -pipe' 
--with-mumps-incdir=$HOME/Code/MUMPS_4.9.2/include 
--with-mumps-lib="-L$HOME/Code/MUMPS_4.9.2/lib -ldmumps -lmumps_common 
-L$HOME/Code/lib -lscalapack -lblacsF77all 
-L$HOME/Code/metis/metis-4.0 -lmetis 
-L$HOME/Code/MUMPS_4.9.2/PORD/lib -lpord"

However, this version is not officially documented, and it might not work 
without some tweaking.  You would write a problem statement deriving from 
the class in

Ipopt/src/Interfaces/IpParTNLP.hpp

Hopefully the information in the comments.  There are also examples in

Ipopt/examples/ParScalableProblems

give you an idea how to use it in case you want to use use the regular 
TNLP interface (which is then parallelized using the ParTNLPWrapper.)

We have not officially release this version, since currently we did not 
really find a parallel linear solver for indefinite symmetric matrices 
that works really well in parallel.  We tried MUMPS, but it did not scale 
too well with the problem we looked at.  We also worked with the WSMP 
linear solver, but since it does not yet really support indefinite 
symmetric linear system in distributed memory mode, we had to use a trick 
that does not work in general.

So, feel free to try it, but you are a little on your own to make it work, 
and don't expect too much of a good performance at this point.  We are 
hoping to have a more scalable linear solver available soon, and once that 
happens, we will also support this parallel version of Ipopt.

Good luck, and if you can get it to compile, it would be great to hear 
your experience with it.

Andreas



On Mon, 29 Nov 2010, MW wrote:

> Hello,
>
> Is it possible to compile parallel implementation of mumps with ipopt? When I say parallel I mean mpi-enabled one. What I've got at the moment is mpi-enabled mumps installation compiled by hand outside ipopt. It runs fine and solves example cases on multiple cores when started by mpirun. I also have sequential mumps solver compiled in in ipopt by usual ./configure stuff. I can find no way to configure mumps there as parallel one unless one condsider libseq stubs as mpi implementation. When I specify mumps libs and include headers directly to point at my custom installation ipopt does not compile, as mpi headers are redefined in ipopt .h files.
>
> My goal is to compile ipopt, then any example, run it using mumps solver and have it solving on multiple machines as distributed memory mpi solution. All on Linux in case that's important.
>
> Regards,
>
> Zdenek
>
>
> ----------------------------------------------------------------------
> Duzi chlopcy lubia wampiry i krew.
> http://linkint.pl/f2718
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>
>



More information about the Ipopt mailing list