[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