Parallel Efficient Sparse Matrix Matrix Multiplication on Multicore Platforms
Sparse matrix matrix multiplication (SpGEMM) is a key kernel in many applications in High Performance Computing such as algebraic multigrid solvers and graph analytics. Optimizing SpGEMM on modern processors is challenging due to random data accesses, poor data locality and load imbalance during computation. In this work, we investigate different partitioning techniques, cache optimizations (using dense arrays instead of hash tables) and dynamic load balancing on SpGEMM using a diverse set of real world and synthetic datasets. We demonstrate that our implementation outperforms the state of the art using Intel\\textregistered Xeon\\textregistered processors. We are up to 3.8X faster than Intel\\textregistered Math Kernel Library (MKL) and up to 257X faster than CombBLAS. We also outperform the best published GPU implementation of SpGEMM on nVidia GTX Titan and on AMD Radeon HD 7970 by up to 7.3X and 4.5X, respectively on their published datasets. We demonstrate good multi core scalability (geomean speedup of 18.2X using 28 threads) as compared to MKL which gets 7.5X scaling on 28 threads.
ISC