The Chunks and Tasks Matrix Library
Abstract
We present a C++ header-only parallel sparse matrix library, based on sparse quadtree representation of matrices using the Chunks and Tasks programming model. The library implements a number of sparse matrix algorithms for distributed memory parallelization that are able to dynamically exploit data locality to avoid movement of data. This is demonstrated for the example of block-sparse matrix-matrix multiplication applied to three sequences of matrices with different nonzero structure, using the CHT-MPI 2.0 runtime library implementation of the Chunks and Tasks model. The runtime library succeeds to dynamically load balance the calculation regardless of the sparsity structure.
- Publication:
-
SoftwareX
- Pub Date:
- July 2022
- DOI:
- 10.1016/j.softx.2022.101159
- arXiv:
- arXiv:2011.11762
- Bibcode:
- 2022SoftX..1901159R
- Keywords:
-
- Chunks and Tasks programming model;
- Block-sparse;
- Parallelization;
- Quadtree;
- Sparse matrices;
- Task-based programming;
- Computer Science - Distributed;
- Parallel;
- and Cluster Computing;
- Computer Science - Mathematical Software;
- 65F50;
- D.1.3;
- G.1.3;
- G.4