[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