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.
희소 행렬 벡터 곱셈(SpMV)은 반복 해법기에 의존하는 과학 코드의 기본 커널이다. 본 연구의 첫 번째 부분에서는 순차 및 기본 MPI 병렬 SpMV 구현을 제시하여 과학 소프트웨어 검증 커뮤니티를 위한 도전 문제를 제공한다. 이러한 구현은 PETSc 라이브러리의 맥락에서 설명된다.
본 연구는 고성능 컴퓨팅(HPC)에서 희소 행렬 벡터 곱셈(SpMV)의 소프트웨어 검증 과제를 다룬다. SpMV는 희소 선형 방정식계 Ax=b를 풀기 위한 핵심 연산이며, 특히 대규모 Krylov 부분공간 방법을 기반으로 하는 반복 해법기를 사용하는 과학 계산 코드에서 광범위하게 적용된다.
// 순차 버전
typedef struct {
int m, n; // 행렬 차원
int *i, *j; // CSR 형식 인덱스
double *a; // 0이 아닌 원소 값
} Mat;
// MPI 병렬 버전
typedef struct {
int m, n, M, N; // 로컬 및 전역 차원
int rstart, cstart; // 시작 행 열 인덱스
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
종합 평가: 본 논문은 실용성이 매우 높은 작업 논문으로, 이론적 혁신 측면에서의 기여는 제한적이지만 과학 소프트웨어 검증 커뮤니티가 절실히 필요로 하는 표준화된 도전 문제를 제공한다. 논문 구조가 명확하고 구현이 완전하며 우수한 재현성과 확장성을 갖추고 있어 HPC 소프트웨어 검증 분야의 발전을 추진하는 데 중요한 가치를 지닌다.