# Available Packages

It is helpful to know what parallel sparse matrix packages are available before making decisions on what language to use so this page provides a (incomplete) list of parallel sparse matrix packages. (The language the packages are written in does not, of course, dictate the language of the computational engine but it may make life a little bit easier - the opinion of T. Austin.)

Link Provided by P. Niellson

http://www.mhpcc.edu/training/workshop/parallel_libs/MAIN.html

Also see

http://www-unix.mcs.anl.gov/mpi/libraries.html

List Created by T. Austin (with descriptions)

- "PetSC":http://www.mcs.anl.gov/petsc
- provides a variety of sparse matrix formats. We could use their sparse matrix formats and have easier access to their iterative solvers if we used PetSC.
- See "PetSC-Matrix":http://www-unix.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-current/src/mat/interface/matrix.c.html#MatMult for abstract matrix routines.

- "PESSL":http://www.ncsa.uiuc.edu/UserInfo/Resources/Hardware/IBMp690/IBM/usr/lpp/pessl.html.en_US/html/pessl02.html

- IBM product which on first glance over looks pretty nice. One would assume that it is optimized for IBM machines, but nonetheless, it has a long list of both dense and sparse matrix subroutines.
- See "PADALL":http://www.ncsa.uiuc.edu/UserInfo/Resources/Hardware/IBMp690/IBM/usr/lpp/pessl.html.en_US/html/pessl102.html#HDRLDVALLO for a subroutine which allocates space for array descriptor of general sparse matrix format.
- See "PSPALL":http://www.ncsa.uiuc.edu/UserInfo/Resources/Hardware/IBMp690/IBM/usr/lpp/pessl.html.en_US/html/pessl103.html#HDRLSMALLO which actually allocates the space for the matrix.

- A Fortran/C message-passing library that from my experience (Travis) is easy to use. It is used by the Telluride:http://public.lanl.gov/mww/intro.html code project at Los Alamos National Lab, where it is called pgslib. Note that it is only available under GPL.
- On 16 March 2006 I started work on code to solve 3D parabolic with explicit time step using pgslib (pseudonym for Diablo95). As a result of test I've decided against using because much of the functionality that I so much appreciated using on previous product was not there. I believe now that much of the functionality in Telluride was added by Telluride developers. :(

Further researching on the net showed that many parallel sparse matrix libraries are coupled with parallel sparse matrix solvers so any usage of such solver packages probably provides a parallel sparse matrix format.

Furthermore, Chris has the beginnings of a Fortran95 sparse matrix library (that will need parallelized) and it may be just as easy to use one we create. This is the opinion of T. Austin and arises because of the fact that so many groups are using their own sparse matrix formats with corresponding subroutines. This is pure speculation though and others input would be useful.