Mat2Boundary: 블록 구조 격자 기반 분산 PDE 솔버를 위한 사용자 정의 경계 조건을 SpMV로 처리하는 방법
요약
Mat2Boundary는 블록 구조 격자 기반의 분산 PDE 솔버에서 복잡한 경계 조건(BC) 처리를 효율적으로 수행하기 위한 DSL 및 컴파일러입니다. 아핀 희소 선형 연산자를 활용하여 다양한 경계 조건을 모델링하며, 다단계 프로그래밍과 다면체 분석을 통해 최적화된 행렬 프리 커널 및 통신 스케줄을 생성합니다. 실험 결과, BC 커널 속도를 최대 7.6배 향상시키고 대규모 CPU 코어 환경에서도 높은 확장성을 입증했습니다.
핵심 포인트
- 경계 조건을 아핀 희소 선형 연산자로 모델링하여 할로 복사, 대칭 매핑, 사용자 정의 보간 등을 통합 관리함
- 다단계 프로그래밍과 다면체 분석을 결합하여 구조적 사례에 대한 행렬 프리 커널 및 불규칙한 사례를 위한 희소 행렬 지원
- 중복된 경계 작업을 제거하고 분산 실행을 위한 재사용 가능한 통신 스케줄 합성
- 천수 방정식 솔버 및 HPCG 평가 결과, 커널 속도 최대 7.6배 향상 및 코드량 70% 이상 감소 확인
- 1,344개 CPU 코어 환경에서 72%-88%의 높은 확장성 달성
경계 조건 (Boundary-condition, BC) 처리는 구조적 및 블록 구조 격자 (block-structured grids) 상의 PDE 솔버, 특히 고차 방법 (high-order methods) 및 분산 메모리 실행 (distributed-memory execution) 환경에서 복잡성을 유발하는 주요 원인입니다. 본 논문에서는 광범위한 범주의 경계 조건을 아핀 희소 선형 연산자 (affine sparse linear operators)로 모델링하는 경계 계산용 DSL 및 컴파일러인 Mat2Boundary를 제안합니다. 이 추상화는 할로 복사 (halo copying), 순환 및 대칭 매핑 (circular and symmetric mappings), 제로 패딩 (zero padding), 블록 가장자리 동기화 (block-edge synchronization), 그리고 사용자 정의 보간 (user-defined interpolation)을 통합하는 동시에, 선언적 구성을 위한 모듈식 기본 하위 행렬 인터페이스를 제공합니다. 이러한 표현을 효율적으로 만들기 위해, Mat2Boundary는 다단계 프로그래밍 (multi-stage programming)과 다면체 분석 (polyhedral analysis)을 결합하여 구조적 사례를 위한 행렬 프리 커널 (matrix-free kernels)을 생성하고, 불규칙한 사례를 위한 사용자 정의 희소 행렬 (sparse matrices)을 지원하며, 중복된 경계 작업을 제거하고, 분산 실행을 위한 재사용 가능한 통신 스케줄을 합성합니다. 큐브드 스피어 격자 (cubed-sphere grids) 상의 두 가지 천수 방정식 (shallow-water equation) 솔버와 HPCG를 통해 평가한 결과, Mat2Boundary는 BC 커널 속도를 최대 7.6배 향상시키고, BC 코드를 70% 이상 줄이며, 1,344개의 CPU 코어에서 72%-88%의 효율성으로 확장됨을 확인했습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv cs.PL (Programming Languages)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기