
CMUCS97178
Computer Science Department
School of Computer Science, Carnegie Mellon University
CMUCS97178
Spark98: Sparse Matrix Kernels for Shared Memory and Message
Passing Systems
David R. O'Hallaron
October 1997
CMUCS97178.ps
CMUCS97178.pdf
Keywords: Benchmark, finite element, parallel computing, sparse
matrix
Spark98 is a collection of sparse matrix kernels for shared memory and
message passing systems. Our aim is to provide system builders with a
set of example sparse matrix codes that are simple, realistic, and
portable. Each kernel performs a sequence of sparse matrix vector
product operations using matrices that are derived from a family of
threedimensional finite element earthquake applications. We describe
the computational structure of the kernels, summarize their
performance on a parallel system, and discuss some of the insights
that such kernels can provide. In particular we notice that efficient
parallel programming of sparse codes requires careful partitioning of
data references, regardless of the underlying memory system. So on
one hand, efficient shared memory programs can be just as difficult to
write as efficient message passing programs. On the other hand,
shared memory programs are not necessarily less efficient than message
passing programs.
20 pages
