Verification Challenges in Sparse Matrix Vector Multiplication in High Performance Computing: Part I
Junchao Zhang
TL;DR
Verification challenges in sparse matrix vector multiplication are addressed by Part I through reproducible baseline implementations of SpMV in CSR format, both sequential and basic MPI, within the PETSc context. The work provides hardwired inputs and a straightforward y = Ax verification using the squared norm $||y - z||^2$, enabling deterministic correctness checks across architectures. It details data layouts, local/global size computations, and inter-process data movement (e.g., gathering distributed $x$) to perform CSR-based SpMV, establishing a solid verification baseline for the forthcoming optimized MPI SpMV in Part II. The contributions support reproducible verification workflows for HPC kernels and foster standardization of cross-architecture validation.
Abstract
Sparse matrix vector multiplication (SpMV) is a fundamental kernel in scientific codes that rely on iterative solvers. In this first part of our work, we present both a sequential and a basic MPI parallel implementations of SpMV, aiming to provide a challenge problem for the scientific software verification community. The implementations are described in the context of the PETSc library.
