Sparse matrix multiplication (SpGEMM) is a fundamental kernel used in many diverse application areas, both numerical and discrete. For example, many algebraic graph algorithms rely on SpGEMM in the tropical semiring to compute shortest paths in graphs. Recently, SpGEMM has received growing attention regarding implementations for specific (parallel) architectures. Yet, this concerns only the static problem, where both input matrices do not change. In many applications, however, matrices (or their corresponding graphs) change over time. Although recomputing from scratch is very expensive, we are not aware of any dynamic SpGEMM algorithms in the literature. In this paper, we thus propose a batch-dynamic algorithm for MPI-based parallel computing. Building on top of a distributed graph/matrix data structure that allows for fast updates, our dynamic SpGEMM reduces the communication volume significantly. It does so by exploiting that updates change far fewer matrix entries than there are non-zeros in the input operands. Our experiments with popular benchmark graphs show that our approach pays off. For batches of insertions or removals of matrix entries, our dynamic SpGEMM is substantially faster than the static algorithms in the state-of-the-art competitors CombBLAS, CTF and PETSc.
翻译:松散的矩阵乘法( SpGEMM) 是许多不同应用领域( 包括数字和离散) 使用的基本内核。 例如, 许多代数图形算法依靠热带半成形中的 SpGEMM 来计算最短的路径。 最近, SpGEMM 在特定( 平行) 结构的实施方面受到越来越多的关注。 然而, 这只涉及静态问题, 即两个输入矩阵都不变化。 但是, 在许多应用程序中, 矩阵( 或其对应的图表) 随时间变化而变化。 尽管从零到零的重新计算费用非常昂贵, 我们不知道文献中存在任何动态 SpGEM 算法。 因此, 我们在此文件中为基于 MPI 的平行计算提出一个批量动力算法。 在分布式的图形/ 矩阵数据结构之上, 我们的动态 SpGEMMMM 大幅更新矩阵的变化要小于输入的非零零的矩阵。 我们对流行基准图表的实验显示我们的方法是支付。 对于插入的P- ARMMM- 矩阵的分批数或大幅递增的 CS- ComGEFTF 来说, 我们的SPGIGE- 的S- C- PGE- Rest- RlGIL 矩阵的递增速度是比我们的S- RGIFTFMUP- C- SGUP- C- C- SGUP- C- C- C- C-C- RGUTFML 和C- C- C- SGI- C-C-C-C-C- GGL 的快速的进入入程速度快。