Locality-aware parallel block-sparse matrix-matrix multiplication using the Chunks and Tasks programming model
arXiv:1501.07800 · doi:10.1016/j.parco.2016.06.005
Abstract
We present a method for parallel block-sparse matrix-matrix multiplication on distributed memory clusters. By using a quadtree matrix representation, data locality is exploited without prior information about the matrix sparsity pattern. A distributed quadtree matrix representation is straightforward to implement due to our recent development of the Chunks and Tasks programming model [Parallel Comput. 40, 328 (2014)]. The quadtree representation combined with the Chunks and Tasks model leads to favorable weak and strong scaling of the communication cost with the number of processes, as shown both theoretically and in numerical experiments. Matrices are represented by sparse quadtrees of chunk objects. The leaves in the hierarchy are block-sparse submatrices. Sparsity is dynamically detected by the matrix library and may occur at any level in the hierarchy and/or within the submatrix leaves. In case graphics processing units (GPUs) are available, both CPUs and GPUs are used for leaf-level multiplication work, thus making use of the full computing capacity of each node. The performance is evaluated for matrices with different sparsity structures, including examples from electronic structure calculations. Compared to methods that do not exploit data locality, our locality-aware approach reduces communication significantly, achieving essentially constant communication per node in weak scaling tests.
35 pages, 14 figures
References in corpus (2)
Cited by in corpus (8)
- A Systematic Survey of General Sparse Matrix-Matrix Multiplication
- Efficient Computation of Sparse Matrix Functions for Large-Scale Electronic Structure Calculations: The CheSS Library
- Increasing the Efficiency of Sparse Matrix-Matrix Multiplication with a 2.5D Algorithm and One-Sided MPI
- Task-Based Algorithm for Matrix Multiplication: A Step Towards Block-Sparse Tensor Computing
- Approximate multiplication of nearly sparse matrices with decay in a fully recursive distributed task-based parallel framework
- Efficient computation of the density matrix with error control on distributed computer systems
- Sparse approximate matrix-matrix multiplication for density matrix purification with error control
- Parallelization and scalability analysis of inverse factorization using the Chunks and Tasks programming model