[논문 리뷰] Parthenon -- a performance portable block-structured adaptive mesh refinement framework
Parthenon은 Kokkos 기반으로 구축된 성능 이식성 있고 블록 구조적 적응 메쉬 분할(AMR) 프레임워크로, 다양한 아키텍처에서 효율적인 엑사스케일 시뮬레이션을 가능하게 한다. 9,216개의 Frontier 노드에서 약 92%의 약한 스케일링 효율을 기반으로 1.7×10¹³ zone-cycles/s의 성능을 달성하였으며, 장치 메모리 할당, 변수 및 블록의 논리적 패킹, 일방적 비동기 MPI를 활용하여 데이터 이동과 통신 오버헤드를 최소화한다.
On the path to exascale the landscape of computer device architectures and corresponding programming models has become much more diverse. While various low-level performance portable programming models are available, support at the application level lacks behind. To address this issue, we present the performance portable block-structured adaptive mesh refinement (AMR) framework Parthenon, derived from the well-tested and widely used Athena++ astrophysical magnetohydrodynamics code, but generalized to serve as the foundation for a variety of downstream multi-physics codes. Parthenon adopts the Kokkos programming model, and provides various levels of abstractions from multi-dimensional variables, to packages defining and separating components, to launching of parallel compute kernels. Parthenon allocates all data in device memory to reduce data movement, supports the logical packing of variables and mesh blocks to reduce kernel launch overhead, and employs one-sided, asynchronous MPI calls to reduce communication overhead in multi-node simulations. Using a hydrodynamics miniapp, we demonstrate weak and strong scaling on various architectures including AMD and NVIDIA GPUs, Intel and AMD x86 CPUs, IBM Power9 CPUs, as well as Fujitsu A64FX CPUs. At the largest scale on Frontier (the first TOP500 exascale machine), the miniapp reaches a total of $1.7 imes10^{13}$ zone-cycles/s on 9,216 nodes (73,728 logical GPUs) at ~92% weak scaling parallel efficiency (starting from a single node). In combination with being an open, collaborative project, this makes Parthenon an ideal framework to target exascale simulations in which the downstream developers can focus on their specific application rather than on the complexity of handling massively-parallel, device-accelerated AMR.
연구 동기 및 목표
- 엑사스케일 아키텍처에서 블록 구조적 AMR 프레임워크의 애플리케이션 수준 지원이 부족한 문제를 해결하기 위해.
- CPU와 GPU를 포함한 이종 시스템에서 효율적이고 확장 가능한 시뮬레이션을 가능하게 하기 위해, 다양한 엑사스케일 플랫폼에서의 구현을 목표로 한다.
- 장치 메모리 할당과 최적화된 커널 실행을 통해 다중 노드 AMR 시뮬레이션에서의 데이터 이동과 통신 오버헤드를 줄이기 위해.
- 애플리케이션 개발자가 물리 모델링에 집중할 수 있도록, 저수준 병렬 처리 및 이식성 문제에서 자유로운 모듈형이고 확장 가능한 프레임워크를 제공하기 위해.
- AMD 및 NVIDIA GPU, Intel 및 AMD x86 CPU, IBM Power9, Fujitsu A64FX CPU를 포함한 다양한 아키텍처에서 강한 및 약한 스케일링 성능을 입증하기 위해.
제안 방법
- 다양한 하드웨어 아키텍처 간 추상화를 가능하게 하기 위해, Kokkos 프로그래밍 모델을 기반으로 프레임워크를 구축한다.
- 모든 시뮬레이션 데이터는 호스트와 장치 간 데이터 이동을 최소화하기 위해 직접 장치 메모리에 할당된다.
- 특히 작은 블록 크기에서 커널 실행 오버헤드를 줄이기 위해 변수와 메쉬 블록을 더 큰 구조체로 논리적으로 팩킹한다.
- 계산과 통신의 오버랩을 위해 다중 노드 환경에서 지연 시간을 줄이기 위해 일방적 비동기 MPI 호출을 사용한다.
- 다차원 변수, 텐서, 희소 할당을 위한 추상화와 종속성 인식 실행을 위한 태스크 기반 드라이버를 제공한다.
- 물리 해소기(예: 유체역학, 복사 전달)를 재사용하고 확장 가능하게 하기 위해 모듈형 패키지 시스템을 제공한다.
실험 결과
연구 질문
- RQ1성능 이식성이 있는 AMR 프레임워크가 AMD 및 NVIDIA GPU, Intel 및 AMD x86 CPU를 포함한 다양한 엑사스케일 아키텍처에서 높은 병렬 효율성을 달성할 수 있는가?
- RQ2장치 메모리 할당과 변수의 논리적 패킹이 블록 구조적 AMR 시뮬레이션에서 커널 실행 오버헤드를 얼마나 효과적으로 줄일 수 있는가?
- RQ3일방적 비동기 MPI가 다중 노드 AMR 시뮬레이션에서 통신 지연을 얼마나 줄이고 계산과의 오버랩을 얼마나 향상시킬 수 있는가?
- RQ4특히 Frontier와 같은 신규 아키텍처에서, 프레임워크가 엑사스케일 규모에서 높은 약한 스케일링 효율성을 유지할 수 있는가?
- RQ5모듈형 패키지 추상화는 다물리카 애플리케이션에서 빠른 프로토타이핑과 재사용을 얼마나 잘 지원하는가?
주요 결과
- Parthenon은 9,216개의 Frontier 노드(73,728개의 논리적 GPU)에서 1.7×10¹³ zone-cycles/s의 성능을 달성하여 엑사스케일 수준의 성능을 입증하였다.
- Frontier 슈퍼컴퓨터에서 단일 노드에서 9,216개 노드로 확장할 때, 약 92%의 약한 스케일링 효율을 달성하였다.
- AMD 및 NVIDIA GPU, Intel 및 AMD x86 CPU, IBM Power9 CPU, Fujitsu A64FX CPU에서 성능 이식성이 성공적으로 입증되었다.
- 동일한 노드에서 GPU 가속 시뮬레이션은 CPU 전용 시뮬레이션보다 유의미하게 빠르게 작동하였으며, 균일한 메esh와 다중 수준 메쉬의 정밀도 조정을 모두 포함하여 성능이 뛰어났다.
- Parthenon-hydro 미니앱은 1,000줄 이내의 코드로 전체 3D 압축성 유체역학을 AMR와 함께 구현하여 빠른 프로토타이핑 능력을 입증하였다.
- 프레임워크의 설계는 메모리와 통신의 효율적 사용을 가능하게 하며, 변수와 블록의 논리적 패킹을 통해 커널 실행 오버헤드를 감소시켰다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.