Sparse Matrix Kernels for
Shared Memory and Message Passing Systems

David O'Hallaron, Carnegie Mellon University, April, 1998

The Spark98 tech report: David R. O'Hallaron, Spark98: Sparse Matrix Kernels for Shared Memory and Message Passing Systems, Technical Report CMU-CS-97-178, October 1997. abstract, ps, pdf)

Spark98 is a collection of 10 sparse matrix kernels for shared memory and message passing systems. Each kernel performs a sequence of sparse matrix vector product (SMVP) operations. The aim is to provide system builders with a set of example sparse matrix codes that are simple, realistic, and portable.

Each kernel is a program/mesh pair; there are 5 programs and 2 meshes (sf10 and sf5) for a total of 10 kernels. The meshes were produced by the CMU Quake project. The programs are written in C and consist of a baseline sequential program (smv), three shared memory programs (lmv, rmv, and hmv), and a message passing program (mmv). The programs are points on a continuum defined by how carefully they partition data references among PEs. The shared memory programs can be compiled for either the Posix or SGI thread interfaces. The message passing programs are written for the MPI interface.

Downloading instructions:

Downloaded File Description Compressed Size Expanded Size
spark98.tar.Z The complete Spark98 distribution (with the sf10 and sf5 meshes) 28 MB 70 MB
spark98lite.tar.Z A smaller Spark98 distribution (without the sf5 meshes) 6 MB 15 MB
spark98sf5.tar.Z The sf5 meshes 22 MB 56 MB

To expand "foo.tar.Z", type "uncompress foo.tar.Z; tar xvf foo.tar".

For detailed information on the different kernels and how to use and run them, see the README file from the Spark98 distribution. Other papers with more general background information are also available.

sf2 meshes

The sf2 meshes of the San Fernando Valley are now available (378K nodes, 1M equations, 1M unknowns, 2M linear tetrahedral elements).
Questions or comments? Please send email to David O'Hallaron at

Last modified: Wed Apr 6 18:10:09 EDT 2005