Parallel Does the package run in parallel? All the parallel packages are based on MPI, other protocols are noted.
Iterative Does the package contain iterative methods? A few packages have preconditioners as their main focus, but suppply one or a few iterative methods for the user who doesn't have any yet.
Prec Does the package contain preconditioners?
Data How does the package interface to user data? See note 3 below.
Lang What is the implementation language of the package?
Inst Is the library instrumented, reporting on flops and timing?
Package | Parallel | Iter | Prec | Data | Language | Inst |
Aztec | yes | yes | yes | internal 3a | C | yes |
BlockSolve95 | yes | yes 1 | yes | internal 3a | C | yes |
BPKIT | no | yes 1 | yes | internal 3b | C++ 8 | no |
IML | n/a 2 | yes | yes 9 | supplied | C++ | - |
Itpack | no | yes | yes 7 | prescribed | Fortran | no |
Laspack | no | yes | yes | internal | C | - |
ParPre | yes | no | yes | internal 4 | C | - |
PCG | coming | yes | yes | prescribed/
supplied/free |
Fortran | - |
Petsc | yes | yes | yes | internal/supplied | C 8 | yes |
PIM | n/a 2 | yes | no | free | Fortran | - |
PSparselib | yes | yes | yes | free | Fortran | no |
SPAI | yes | yes 1 | yes | - | C | - |
SPlib | no | yes | yes | prescribed | Fortran | - |
templates | no | yes | no 5 | supplied 6/free | Fortran/C
Matlab |
- |
Footnotes
1 Not the main focus of this package.
2 The library abstracts away from data structure implementation aspects; parallelism is possible, but is the user's responsibility.
3 For the explanation of terms `internal', `prescribed',
`supplied', and `free', see section 2.2.1.
3a converted from compressed row format.
3b converted from Harwell-Boeing format.
4 Identical to Petsc format.
5 Nothing beyond Jacobi.
6 The external product and solve routines are presumed to find the matrix in a common block.
7 Can not be chosen independently of the iterative method: the user picks a combination.
8 Fortran interface provided.
9 Preconditioners provided in an example C++ matrix class
library, SparseLib++.