This paper evaluates portable software packages for the iterative
solution of very large sparse linear systems on parallel architectures.
While we cannot hope to tell individual users which package will best
suit their needs, we do hope that our systematic evaluation provides
essential unbiased information about the packages and the evaluation
process may serve as an example on how to evaluate these packages. The
information contained here include feature comparisons, usability
evaluations and performance characterizations. This review is primarily
focused on self-contained packages that can be easily integrated into an
existing program and are capable of computing solutions to very large
sparse linear systems of equations. More specifically, it concentrates
on portable parallel linear system solution packages that provide
iterative solution schemes and related preconditioning schemes because
iterative methods are more frequently used than competing schemes such
as direct methods. The eight packages evaluated are:
Aztec,
BlockSolve,
ISIS++,
LINSOL,
P_SPARSLIB,
PARASOL,
PETSc, and
PINEAPL.
Among the eight portable parallel iterative linear system solvers
reviewed, we recommend PETSc and Aztec for most application programmers
because they have well designed user interface, extensive documentation
and very responsive user support. Both PETSc and Aztec are written in
the C language and are callable from Fortran. For those users
interested in using Fortran 90, PARASOL is a good alternative. ISIS++
is a good alternative for those prefer the C++ language. Both PARASOL
and ISIS++ are relatively new and are continuously evolving. Thus their
user interface may change. In general, those packages written in
Fortran 77 are more cumbersome to use because the user may need to
directly deal with a number of arrays of varying sizes. Languages like
C++ and Fortran 90 offer more convenient data encapsulation mechanisms
which make it easier to implement a clean and intuitive user interface.
In addition to reviewing these portable parallel iterative solver
packages, we also provide a more cursory assessment of a range of
related packages, from specialized parallel preconditioners to
direct methods for sparse linear systems.