Skip to main content
QUICK REVIEW

[논문 리뷰] Applying Type Oriented Programming to the PGAS Memory Model

Nicholas Edward Brown|arXiv (Cornell University)|2020. 09. 26.
Parallel Computing and Optimization Techniques인용 수 3
한 줄 요약

이 논문은 타입 기반 프로그래밍을 제안하여 PGAS 메모리 모델을 향상시키며, 데이터 분포, 통신 패턴, 메모리 레이아웃과 같은 병렬성 의미 체계를 직접 타입에 코딩함으로써 고수준의, 조합 가능한, 조정 가능한 병렬 코드를 가능하게 한다. Mesham 언어를 사용하여 저자들은 타입 기반 컴파일이 FFTW3와 경쟁 가능한 FFT 성능을 달성할 수 있음을 입증하였으며, 비전문가 프로그래머가 단지 타입 주석을 통해 확장성과 성능을 쉽게 조정할 수 있음을 보여준다.

ABSTRACT

The Partitioned Global Address Space memory model has been popularised by a number of languages and applications. However this abstraction can often result in the programmer having to rely on some in built choices and with this implicit parallelism, with little assistance by the programmer, the scalability and performance of the code heavily depends on the compiler and choice of application. We propose an approach, type oriented programming, where all aspects of parallelism are encoded via types and the type system. The type information associated by the programmer will determine, for instance, how an array is allocated, partitioned and distributed. With this rich, high level of information the compiler can generate an efficient target executable. If the programmer wishes to omit detailed type information then the compiler will rely on well documented and safe default behaviour which can be tuned at a later date with the addition of types. The type oriented parallel programming language Mesham, which follows the PGAS memory model, is presented. We illustrate how, if so wished, with the use of types one can tune all parameters and options associated with this PGAS model in a clean and consistent manner without rewriting large portions of code. An FFT case study is presented and considered both in terms of programmability and performance - the latter we demonstrate by a comparison with an existing FFT solver.

연구 동기 및 목표

  • PGAS 기반 병렬 프로그래밍에서 프로그래머의 단순성과 성능 제어 간의 갈등을 해결하기 위해.
  • 비전문가 HPC 사용자가 코드를 다시 작성하지 않고도 저수준의 병렬성 결정을 표현하고 조정할 수 있도록 하기 위해.
  • 아키텍처 간 병렬 코드의 이식성과 최적화 복잡성을 줄이기 위해 병렬성 의미 체계를 타입에 코딩함으로써.
  • 풍부한 타입 정보가 컴파일러가 최적화된, 확장 가능한 코드를 최소한의 프로그래머 노력으로 생성하는 데 도움이 될 수 있음을 입증하기 위해.
  • 2D FFT 사례 연구를 통해 기존의 표준 프레임워크(예: FFTW3)와의 프로그래머블성 및 성능 비교를 통해 접근법을 평가하기 위해.

제안 방법

  • 데이터 분포, 메모리 레이아웃, 통신 패턴과 같은 병렬성 의미 체계를 타입에 코딩하는 새로운 타입 체계를 도입하기 위해.
  • 사용자 정의 타입을 통해 PGAS 의미 체계를 통합하는 Mesham 언어를 설계하며, 기존 호환성을 위해 기본 동작 방식을 유지하기 위해.
  • 변수 선언 시 타입 주석을 사용하여 컴파일러가 최적화된 아키텍처 인식 병렬 코드를 생성하도록 이끌기 위해.
  • 고수준 타입을 저수준 통신(예: MPI) 및 실행 모델(예: 스레딩)으로 매핑하는 런타임 추상화 레이어를 구현하기 위해.
  • 동적 타입 캐스팅과 완전한 타입 추적을 통한 함수 매개변수 전달을 허용하여 함수 호출 간 데이터 분포 의미 체계를 유지하기 위해.
  • 알고리즘 논리의 수정 없이도 데이터 분해 전략(예: 블록 vs. 순환)을 조정하기 위해 타입 체계를 적용하기 위해.

실험 결과

연구 질문

  • RQ1고수준 언어에서의 타입 주석이 PGAS에서 저수준 병렬성 결정을 효과적으로 코딩하고 제어할 수 있는가?
  • RQ2타입 기반 프로그래밍이 이질적 아키텍처 간 코드 유지보수성과 이식성에 얼마나 기여하는가?
  • RQ3타입 기반 PGAS 구현의 성능은 수작업 최적화가 된 성숙한 라이브러리인 FFTW3와 비교해 어떻게 되는가?
  • RQ4비전문가 프로그래머가 깊은 HPC 전문 지식 없이 타입 기반 조정을 통해 높은 성능을 달성할 수 있는가?
  • RQ5타입 기반 코드 조정이 데이터 병렬 커널에서 통신 오버헤드와 확장성에 미치는 영향은 무엇인가?

주요 결과

  • Mesham의 구현은 2D FFT 벤치마크에서 FFTW3와 경쟁 가능한 성능을 달성하였으며, 타입 기반 통신 최적화가 수작업 최적화된 솔루션과 맞먹거나 뛰어나다는 것을 입증하였다.
  • 데이터 분해 전략을 변경하기 위해선 타입 수정만으로도 충분했으며 알고리즘 논리의 재작성은 필요로 하지 않아 조정 노력이 크게 감소하였다.
  • 컴파일러는 명시적 병렬성 지시어가 없이도 타입 정보만으로 효율적이고 확장 가능한 코드를 성공적으로 생성하였다.
  • 런타임 시스템은 전체 타입과 상태 추적을 유지하여 함수 호출 중 불필요한 데이터 재분배를 방지하였다.
  • 최적의 프로세스 수를 초과할 경우 Mesham에서 성능 저하가 관찰되어 강력한 확장성 향상을 위한 추가 조정이 필요하다는 점이 확인되었다.
  • 플러그인 방식의 런타임 추상화 레이어를 통해 이식성이 뛰어나 이질적 시스템으로의 원활한 이식이 가능하며, 소스 코드 변경 없이도 가능하다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.