[Ipopt] MA77 support

Andreas Waechter andreasw at watson.ibm.com
Fri Sep 26 19:31:33 EDT 2008

Hi Jonathan,

Thank you very much for your email.  I'm happy to hear that you have 
interest in contributing an interface to MA77 to the Ipopt distribution, 
this sounds great.

The best is probably if we discuss the technical details directly (to 
avoid too many messages on the mailing list).  I will send you a detailed 
reply this weekend or next week.

In principle, what you outlined sounds very good, and a few features 
(converting to different matrix data structures) are already available 
since they are used for the WSMP and Pardiso interfaces.  The scaling of 
the matrices can also be done separately - at this moment we only have an 
interface to MC19 (see the IpMc19TSymScalingMethod.?pp files, playing 
tricks to get symmetric scaling factors), and it would be wonderful to add 
interfaces to newer scaling routines.

So, thanks a lot again for your interest, and more later.

Best regards,


On Fri, 26 Sep 2008, Jonathan Hogg wrote:

> Hi,
>   I work at STFC Rutherford Appleton Laboratory as part of the group
> responsible for the sparse linear solvers MA27 and MA57. We have
> recently written a new code, MA77, which it may be advantaegous to
> support within IPOPT.
> About MA77
> ==========
> MA77 is primarly designed as an out-of-core solver for symmetric
> systems, enabling the solution of very large linear systems where the
> matrix factors do not fit into memory. It does however also offer an
> in-core option which holds the matrix factors in arrays rather than
> files. Our tests have shown that it beats MA57 on many medium to large
> problems due to using a more up to date dense kernel.
> Future plans for MA77 includes the use of OpenMP to support multicore
> architectures, which we do not anticipate MA57 fully exploiting in the
> near term. Ideally this work will be completed before the end of the
> year.
> Adding a driver to IPOPT
> ========================
> I am willing to put some time in to produce the driver for IPOPT,
> however there are a few technical issues I need some advice on before I
> begin.
> 1) MA77 requires the full matrix to be input in CSR format, not the
> lower triangle as is currently available. I can produce a linked list
> in InitializeStructure() which will make this relatively easy when doing
> the numerical factorization. Am I garunteed that ia and ja do not change
> between calls to MultiSolve?
> 2) MA77 does not provide scaling or ordering itself, does IPOPT perform
> these operatoins on the matrix before calling InitializeStructure() and
> MultiSolve(), or do I need to code these up myself?
> 3) MA77 is supplied as a Fortran 95 module, I suspect the easiest way to
> write the interface is to create a few Fortran subroutines which use the
> module and wrap the necessary functions. I would aim to pass the
> structures to and from C++ as void* pointers as the Fortran types are
> liable to change with time as the code is still under active
> development. Is this approach acceptable as a part of the IPOPT interface?
> Availability of MA77
> ====================
> Recently HSL was made available to academics worldwide, where as
> previously it was available only to UK academics. This should hopefully
> simplify support of interfaces to HSL codes. If the main developers of
> IPOPT who will need to maintain any interface are not eligible under
> this scheme we /may/ be able to negotiate a free non-commerical license
> for one or two individuals.
> Thanks,
> Jonathan Hogg
> Numerical Analysis Group
> Rutherford Appleton Laboratory (STFC)
> jonathan.hogg (at) stfc.ac.uk
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt

More information about the Ipopt mailing list