sparse matrices

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

sparse matrices

Paul Kienzle-2
John,

I was looking at Andy's sparse code trying to decide how to handle
exceptions.  Before going to far into it, I decided to check out the
competition in the sparse solver market.

A useful page is
        http://www-users.cs.umn.edu/~agupta/wsmp.html,
which has a comparison of general solvers.  The authors own package (wsmp)
comes out way ahead, but I very much doubt it will be released under
a GPL compatible license.  The next best package (mumps)
        http://www.enseeiht.fr/lima/apo/MUMPS/
has a non-commercial license.  The third best package (umfpack)
        http://www.cise.ufl.edu/research/sparse/umfpack/
has a BSD style license.  SuperLU
        http://www.nersc.gov/~xiaoye/SuperLU/
and SPOOLES
        http://www.netlib.org/linalg/spooles/spooles.2.2.html
are tied for last place, with the distributed version of superLU having
the dubious distinction of having the only numerically inaccurate
results listed in the table.

Other sites say that umfpack is faster than superlu, but do nothing to
back it up.

Matlab 6.5 uses umfpack for its sparse solver and arpack for eigenvalues.

arpack++ is a C++ library for sparse matrices which can already call
superLU and umfpack.  I haven't looked at it in detail, so I don't know
how much work it would be to turn it into an octave value, or even what
license it is released under.

A recent TOMS article gives a sparse blas reference implementation.  Andy's
sparse ops have these as C++ macros.  I don't know if it is worth changing
to using sparse blas.

Unfortunately, none of this investigation got me anywhere closer to
releasing a 2.1.40 compatible octave-forge.  Oh, well!

- Paul