[Coin-ipopt] compiling on VS with PARDISO
Andreas Waechter
andreasw at watson.ibm.com
Fri Jan 11 17:27:35 EST 2008
Hi Lily,
I'm copying your message to the Ipopt mailing list; please send your reply
also there, so that others might finds answers to similar questions in the
mailing list archive later (well, if anybody is reading it ;-) ).
> Thank you for the reply and directions Andreas! I was going to use MKL
> Pardiso, but as my problem is non-convex I might just try to use
> something else. Do you know if Pardiso improves performance a lot (I
> have sparse matrix of few thousand variables, which is mostly symmetric,
> but has extra two rows and columns that make it not symmetric)?
I'm not sure what you mean by not symmetric. The matrix that is
factorized in Ipopt is always symmetric; it is the augmented system matrix
and is assembled by Ipopt, consisting of the constraint Jacobian and
Hessian of the Jacobian, plus a few other things.
> Or is there any other solver which Ipopt supports that that might be
> worth trying and could greatly improve performance?
You have the choice of a few options with respect to the linear solve,
namely
MA27
MA57
MUMPS
PARDISO
WSMP
I have not done extensive tesing of the relative performance of the
different solvers. When we developed the interface between Pardiso and
Ipopt, we compared the performance with MA27 and MA57; you find the
comparison in our paper
http://www.research.ibm.com/people/a/andreasw/papers/rc23824.pdf
For very large problems (e.g., more than 100,000 variables) coming from
the discretization of PDE, Pardiso clearly seemed to be the fastest solver
with a considerable lead. However, for the CUTE test set, which has much
smaller problems, MA27 seems to be the fastest, even faster than its
successor MA57.
When you say that your problem has a few thousand variables, it is not
necessarily clear if you would get a bit performance boost from using
Pardiso compared to MA27. But this depends on the specifics of your
problem, and don't take my word for it.
MA27 might be the best option for you, but if you want to use is for
commercial purposes or want to want give away any program that contains
MA27 to someone else, you probably need to buy a license for MA27 (see the
MA27 license for details).
Another option you have is to use the MUMPS solver. Again, I only have my
own limited experience with it, and from there it seems that MUMPS is not
as fast as MA27 for small or medium-sized problems. But MUMPS is public
domain code, i.e., you can use it for any purpose without charge. Other
Ipopt users have compiled Ipopt with MUMPS with the developer studio (see
some older mailing list postings).
I hope this helps,
Andreas
>
> Thank you,
> Lily
>
> ----- Original Message ----
> From: Andreas Waechter <andreasw at watson.ibm.com>
> To: Liliya Kharevych <lilyukma at yahoo.com>
> Cc: coin-ipopt mailing list <coin-ipopt at list.coin-or.org>
> Sent: Thursday, January 10, 2008 3:53:43 PM
> Subject: Re: [Coin-ipopt] compiling on VS with PARDISO
>
>
> Hi Lily,
>
>> How can I specify which linear solver to use when I compile Ipopt
> using
>> Visual Studio? I am trying to compile it with Pardiso.
>
> 1. You need to edit the file
>
> Ipopt/src/Common/IpoptConfig.h
>
> You need to comment out the lines that say
>
> #define HAVE_MA27 1
>
> and
>
> #define HAVE_MC19 1
>
> and then instead specify
>
> #define HAVE_PARDISO 1
>
> 2. You need to edit the Ipopt project in Visual Studio and take out the
>
> files
>
> IpMa27TSolverInterface.cpp
> IpMc19TSymScalingMethod.cpp
>
> and instead use
>
> IpPardisoSolverInterface.cpp
>
> 3. HOWEVER: In case you want to use Pardiso from the Intel MKL, you
> need
> to be aware that the version of Pardiso in there does not yet have
> certain
> features that are used to make it properly work in Ipopt. In
> particular,
> Pardiso does not provide the inertia information - this means that your
>
> might see bad convergence or failure for nonconvex problems - and there
>
> might be other problems. I don't know if there is a Windows version of
>
> Pardiso available that already has the required features. You might
> want
> to contact the Pardiso developer, Olaf Schenk - you can find the
> contact
> information at the (new) Pardiso home page
>
> http://www.pardiso-project.org/
>
> I hope this helps,
>
> Andreas
>
>
>
>
>
> ____________________________________________________________________________________
> Looking for last minute shopping deals?
> Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping
>
More information about the Coin-ipopt
mailing list