[Coin-ipopt] compiling on VS with PARDISO

Liliya Kharevych lilyukma at yahoo.com
Fri Jan 11 20:16:34 EST 2008

> 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
> and is assembled by Ipopt, consisting of the constraint Jacobian and 
> Hessian of the Jacobian, plus a few other things.

I guess I just don't understand exactly how IPOPT works. My problem has n variables and n constraints (no minimization),
so my Jacobian of the constraints is not symmetric, and I use limited memory hessian approximation. 
But I can see now in the paper that you pointed to, that everything get assembled into larger symmetric matrix.

Thank you for the information,

> 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, 


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


For very large problems (e.g., more than 100,000 variables) coming from
the discretization of PDE, Pardiso clearly seemed to be the fastest
with a considerable lead.  However, for the CUTE test set, which has
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
MA27 license for details).

Another option you have is to use the MUMPS solver.  Again, I only have
own limited experience with it, and from there it seems that MUMPS is
as fast as MA27 for small or medium-sized problems.  But MUMPS is
domain code, i.e., you can use it for any purpose without charge.
Ipopt users have compiled Ipopt with MUMPS with the developer studio
some older mailing list postings).

I hope this helps,


> 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
> 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
> might see bad convergence or failure for nonconvex problems - and
> might be other problems.  I don't know if there is a Windows version
> 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.

Never miss a thing.  Make Yahoo your home page. 

More information about the Coin-ipopt mailing list