Rescheduling for Locality in Sparse Matrix Computations [chapter]

Michelle Mills Strout, Larry Carter, Jeanne Ferrante
2001 Lecture Notes in Computer Science  
In modern computer architecture the use of memory hierarchies causes a program's data locality to directly affect performance. Data locality occurs when a piece of data is still in a cache upon reuse. For dense matrix computations, loop transformations can be used to improve data locality. However, sparse matrix computations have non-affine loop bounds and indirect memory references which prohibit the use of compile time loop transformations. This paper describes an algorithm to tile at runtime
more » ... called serial sparse tiling. We test a runtime tiled version of sparse Gauss-Seidel on 4 different architectures where it exhibits speedups of up to 2.7. The paper also gives a static model for determining tile size and outlines how overhead affects the overall speedup.
doi:10.1007/3-540-45545-0_23 fatcat:jrkyz42nzbaf7hxuqifaojnt2u