엑사스케일 컴퓨팅 프로젝트: Pagoda는 확장 가능한 데이터 구조와 공격적인 비동기 통신으로 PGAS 프로그래밍을 업데이트합니다.
2023년 8월 31일
2023년 8월 31일 — Pagoda 프로젝트는 프로그래머가 PGAS(Partitioned Global Address Space) 모델을 사용하여 고성능 애플리케이션을 구현하는 데 사용하는 소프트웨어를 연구 및 개발합니다. 이 프로젝트는 주로 ECP(Exascale Computing Project)에서 자금을 지원받으며 업계, 정부 및 학계의 파트너 프로젝트와 상호 작용합니다. [1]
PGAS는 생산성을 향상시키기 위해 전역적으로 공유된 주소 공간을 지원하는 동시에 로컬 및 원격 데이터 액세스를 구별하여 최적화 기회를 제공하는 프로그래밍 모델입니다. 이러한 구별을 통해 분산된 이기종 컴퓨팅 환경에서 데이터에 쉽게 액세스하는 동시에 균일하지 않은 통신 비용에 대한 인식을 수용할 수 있습니다. 프로그래머에게 PGAS는 데이터 구조를 메모리에 간단히 할당하고 이를 CPU 및 GPU 장치 모두에서 투명하게 사용할 수 있거나 비용이 많이 드는 데이터 전송을 피하기 위해 계산 하드웨어에 가까운 데이터를 명시적으로 찾을 수 있는 두 가지 장점을 모두 제공합니다( 런타임 및 전력 소비 증가 측면에서) 성능과 확장성이 제한됩니다. 이로 인해 PGAS는 DOE 엑사스케일 슈퍼컴퓨터와 같은 대규모 병렬 아키텍처에서 성능을 극대화하고 확장성을 지원해야 하는 많은 애플리케이션을 위한 탁월한 프레임워크가 됩니다.
애플리케이션 드라이버
많은 과학 응용 프로그램에는 적응형 메시, 희소 행렬, 해시 테이블, 히스토그램, 그래프 및 동적 작업 대기열과 같은 불규칙한 데이터 구조에 대한 비동기 업데이트가 포함됩니다.
때때로 프로그래머는 메모리 위치를 활용하는 가장 효율적인 방법을 결정하기 위해 데이터 구조에 대해 충분히 알고 있습니다. PGAS 모델을 사용하면 프로그래머는 이러한 데이터 구조의 배치를 명시적으로 관리하여 개별 GPU의 메모리에서 성능을 최적화할 수 있습니다. 또는 프로그래머가 실제로 신경 쓰지 않을 수도 있습니다. 이 경우 그들이 정말로 원하는 것은 데이터에 액세스하고 계산을 계속하는 것입니다. 이러한 액세스 및 진행 시나리오에서 PGAS 메모리 모델은 자연스럽게 데이터에 대한 편리한 액세스를 지원합니다.
불행히도 모든 메모리 액세스를 분류하기가 쉽지는 않습니다. PGAS 모델은 프로그래머에게 데이터 액세스 성능이 실제로 중요하지만 데이터 이동이 너무 복잡하고 불규칙하여 예측할 수 없는 복잡한 데이터 액세스 문제를 해결하는 데 필요한 도구를 제공합니다.
기술 소개
이기종 컴퓨팅이 확산되고 여러 공급업체의 하드웨어 제품이 복잡해지면서 플랫폼 다양성이 폭발적으로 증가하고 있습니다. 프로그래머의 관점에서 볼 때, 각 데이터센터와 슈퍼컴퓨터는 고성능을 달성하기 위해 데이터 배치에 있어 매우 구체적인 최적화가 필요할 수 있습니다. 프로그래머가 이러한 조합 이식성 문제를 해결하는 데 도움을 주기 위해 Pagoda 소프트웨어 스택은 이식 가능한 통신 계층인 GASNet과 UPC++ 및 Berkeley UPC 생산성 계층을 제공합니다(그림 1).
가스넷-EX
GASNet-EX는 20년 된 GASNet-1 PGAS 코드베이스 및 통신 시스템에 대한 업데이트입니다. 이번 업데이트의 일환으로 GASNet 인터페이스는 엑사스케일 슈퍼컴퓨팅의 새로운 요구 사항을 수용하고 현재 및 미래의 HPC 아키텍처에서 다양한 PGAS 프로그래밍 모델에 대한 통신 서비스를 지원하도록 재설계되었습니다. 이러한 노력에는 소프트웨어 인터페이스의 대대적인 재설계와 함께 구현 점검이 포함됩니다.
GASNet-1 클라이언트에 대한 이전 버전과의 호환성과 함께 이번 재설계의 동기 부여 목표는 다음과 같습니다.
GASNet은 여러 프로젝트에서 채택되었기 때문에 호환성이 중요합니다(그림 2). GASNet-EX API와 클라이언트 요구 사항 및 하드웨어 기능의 긴밀한 의미 일치는 HPC에서 관심 있는 네트워크에 대한 기본 API를 통한 직접 구현으로 인해 경쟁 라이브러리보다 더 나은 성능을 제공하는 경우가 많습니다.
로렌스 버클리 국립 연구소(Berkeley Lab)의 AMCR(Applied Mathematics and Computational Research) 부서의 컴퓨터 시스템 엔지니어 5이자 ECP Pagoda 프로젝트의 PI인 Paul Hargrove는 '-EX'로 표시된 변경 사항이 애플리케이션과 HPC가 어떻게 작동하는지를 관찰했습니다. 지난 20년 동안 변했다. 예를 들어, RMA(원격 메모리 액세스)에 GPU 메모리에 대한 가져오기 및 넣기가 포함되는 방식을 표현하려면 메모리 종류가 중요합니다.