Verification Challenges in Sparse Matrix Vector Multiplication in High Performance Computing: Part I
Zhang
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.
academic
Verification Challenges in Sparse Matrix Vector Multiplication in High Performance Computing: Part I
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.
This research addresses software verification challenges for sparse matrix vector multiplication (SpMV) in high performance computing. SpMV is the core operation for solving sparse linear systems Ax=b and is widely employed in scientific computing codes based on iterative solvers, particularly in large-scale Krylov subspace methods.
Fundamental Nature: SpMV is a foundational algorithm in scientific computing, and its correctness directly impacts the reliability of higher-level applications
Complexity: Although mathematically simple (yi = Σ(aij·xj)), storage formats, data distribution, parallelization, and optimization make implementation complex
To provide a structured challenge problem for the scientific software verification community by offering SpMV implementations ranging from simple to complex, thereby facilitating the development and evaluation of verification tools and methods.
Provision of Standardized Verification Challenge Problem: Designed standard test cases for SpMV specifically for the scientific software verification community
Implementation of Two SpMV Algorithms with Different Complexity Levels:
Sequential implementation (seq.c)
Basic MPI parallel implementation (mpibasic.c)
Establishment of Complete Verification Framework: Including input data generation, correctness checking, and error detection mechanisms
Clear Definition of Verification Objectives: Provided specific verification requirements and challenges for each implementation
// Sequential version
typedef struct {
int m, n; // Matrix dimensions
int *i, *j; // CSR format indices
double *a; // Nonzero element values
} Mat;
// MPI parallel version
typedef struct {
int m, n, M, N; // Local and global dimensions
int rstart, cstart; // Starting row and column indices
int *i, *j;
double *a;
} Mat;
S Balay et al. (2025): PETSc/TAO Users Manual. Technical Report ANL-21/39 - Revision 3.23, Argonne National Laboratory
Yousef Saad (2003): Iterative Methods for Sparse Linear Systems, second edition. Society for Industrial and Applied Mathematics
Overall Assessment: This is a highly practical work paper that, while contributing limited theoretical innovation, provides the scientific software verification community with much-needed standardized challenge problems. The paper is well-structured, complete in implementation, and demonstrates good reproducibility and extensibility, making it valuable for advancing the development of HPC software verification.