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.
// 顺序版本
typedef struct {
int m, n; // 矩阵维度
int *i, *j; // CSR格式索引
double *a; // 非零元素值
} Mat;
// MPI并行版本
typedef struct {
int m, n, M, N; // 局部和全局维度
int rstart, cstart; // 起始行列索引
int *i, *j;
double *a;
} Mat;