AMReX는 블록 구조화된 적응형 메시 기반 다중물리 애플리케이션 개발을 위한 소프트웨어 프레임워크이다. AMReX는 다양한 물리 과정을 정확하게 모사하면서도 계산 비용과 메모리 사용을 줄일 수 있는 적응형 메시 기법을 지원한다.
AMReX는 다양한 성능 특성을 가진 다중물리 애플리케이션을 지원하기 위해 설계되었다. 애플리케이션 개발자가 알고리즘을 구성하는 방식에 제한을 두지 않도록 데이터 구조와 기본 연산을 설계에서 분리하였다. AMReX는 다양한 추상화 수준에서 애플리케이션 개발자와 상호작용할 수 있는 유연한 도구를 제공한다.
또한 AMReX는 성능 포터빌리티를 위한 추상화 계층을 도입하였다. 이를 통해 다양한 GPU 가속기 아키텍처에 효율적으로 대응할 수 있다. AMReX는 CUDA, HIP, SYCL 등의 벤더 솔루션을 활용하여 하드웨어 세부사항을 애플리케이션으로부터 분리하였다.
AMReX는 엑사스케일 컴퓨팅 프로젝트(ECP)의 6개 애플리케이션에서 성공적으로 사용되었다. 이 애플리케이션들은 입자-격자 코드, 천체물리, 우주론, 다상유동, 연소 등 다양한 분야를 다룬다.
ECP 이후에도 AMReX는 계속 발전하고 있다. 최근에는 성능 향상과 새로운 기능 추가가 이루어졌다. 특히 커널 퓨전, 컴파일 타임 커널 특수화, 병렬 리덕션 등의 기능이 추가되었다. 또한 순수 구조체 배열(SoA) 입자 데이터 레이아웃, 비동기 안전 메모리 관리 등의 개선이 있었다.
pyAMReX는 AMReX와 데이터 과학 생태계를 연결하는 Python 바인딩이다. pyAMReX는 GPU 데이터에 대한 제로 복사 접근을 제공하여 AI/ML, 인-시튜 분석, 애플리케이션 결합 등을 지원한다. 또한 대규모 병렬 프로토타이핑을 가능하게 한다.
다른 언어로
소스 콘텐츠 기반
arxiv.org
더 깊은 질문