[Ipopt] MA77 support

Jonathan Hogg jonathan.hogg at stfc.ac.uk
Fri Sep 26 07:36:43 EDT 2008

   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

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

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.

Jonathan Hogg
Numerical Analysis Group
Rutherford Appleton Laboratory (STFC)
jonathan.hogg (at) stfc.ac.uk

More information about the Ipopt mailing list