Table of Contents
Fetching ...

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.

Verification Challenges in Sparse Matrix Vector Multiplication in High Performance Computing: Part I

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 , enabling deterministic correctness checks across architectures. It details data layouts, local/global size computations, and inter-process data movement (e.g., gathering distributed ) 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.
Paper Structure (6 sections, 3 figures)

This paper contains 6 sections, 3 figures.

Figures (3)

  • Figure 1: Left: A 4 $\times$ 12 sparse matrix. Right: its compressed sparse row (CSR) representation.
  • Figure 2: Left: sequential matrix and vector types. Right: sequential SpMV kernel.
  • Figure 3: Left: MPI parallel matrix and vector types. Right: distributed matrix $A$ and vectors $x$ and $y$ on three MPI ranks. The shadowed parts reside on rank 1.