Translation into Julia of the well-known sparse matrix software Sparspak (Waterloo Sparse Matrix Package) for solving large sparse systems of linear algebraic equations.
Sparspak was composed originally of the algorithms from the book “Computer Solution of Large Sparse Positive Definite Systems” by Alan George and Joseph Liu. At the outset written in Fortran 77, later rewritten in Fortran 90, with new high-performance algorithms.
There are a couple of points to this translation:
- It is really pure Julia, except for a handful of calls to dense linear algebra subroutines. Therefore, as high-performance Julia kernels will become available, a real high performance pure-Julia solver can be constructed which will not require calls to outside libraries.
- It is a good opportunity to study some classical methods for dealing with sparse matrices, including several renumbering algorithms.
A general sparse-matrix super-nodal LU solver is now available. There is more work to be done, so any contribution will be welcome.
Can you help us get a LinearSolve.jl wrapper?
Pretty cool! Was it hand translated, or do you have an F77 to Julia script? I am really hoping it is the latter!
Since this is derivative work, the license should include the upstream SPARSPAK license.
I do have a rudimentary tool to translate the Fortran 90 to Julia. It is a slightly modified version of
However, I did have to tweak a few things by hand. And, in the process I managed to
introduce a couple of bugs that led to prolonged debugging sessions. But on the whole,
things went pretty smoothly.
I have an express permission from the authors (George and Liu) to release the
rewritten software under the MIT license. So I hope that covers it.
That covers the licensing question completely.
That’s amazing! It might be a good idea to note that in the LICENSE file.
BTW, how do you expect this might compare with superlu in terms of performance?
Good question, but I don’t have the answer. Yet.
I do have comparison with UMFPACK though. Concepts · Sparspak.jl