Skip to main content
QUICK REVIEW

[논문 리뷰] Portability: A Necessary Approach for Future Scientific Software

Meghna Bhattacharya, P. Calafiura|arXiv (Cornell University)|2022. 03. 16.
Distributed and Parallel Computing Systems인용 수 7
한 줄 요약

이 논문은 고에너지물리학(HEP) 소프트웨어가 GPU 및 FPGA를 포함한 다양한 하드웨어에서 코드를 다시 작성하지 않고도 효율적으로 실행될 수 있도록 하는 이식 가능한 병렬화 전략(PPS)을 제안한다. Kokkos, SYCL, OpenMP, C++의 std::execution 등을 포함한 기존 솔루션을 평가한 결과, 아직 단일 이상의 솔루션이 존재하지는 않지만, 공동체 주도의 표준화와 벤더 지원이 향후 이식성과 과학적 지속 가능성에 필수적임을 확인하였다.

ABSTRACT

Today's world of scientific software for High Energy Physics (HEP) is powered by x86 code, while the future will be much more reliant on accelerators like GPUs and FPGAs. The portable parallelization strategies (PPS) project of the High Energy Physics Center for Computational Excellence (HEP/CCE) is investigating solutions for portability techniques that will allow the coding of an algorithm once, and the ability to execute it on a variety of hardware products from many vendors, especially including accelerators. We think without these solutions, the scientific success of our experiments and endeavors is in danger, as software development could be expert driven and costly to be able to run on available hardware infrastructure. We think the best solution for the community would be an extension to the C++ standard with a very low entry bar for users, supporting all hardware forms and vendors. We are very far from that ideal though. We argue that in the future, as a community, we need to request and work on portability solutions and strive to reach this ideal.

연구 동기 및 목표

  • GPU, FPGA, SoC의 부상으로 인해 x86 전용 코드만으로는 더 이상 충분하지 않은 HEP 계산에서의 하드웨어 이질성 문제를 해결한다.
  • 수백만 줄의 코드를 포함한 대규모 HEP 실험에서 하드웨어별로 특화된 코드베이스를 유지보수하는 데 드는 비용과 비효율성을 줄인다.
  • 기존의 이식 가능한 프로그래밍 모델을 평가하고 비교하여 HEP 워크로드에 적합하고 확장 가능한 솔루션을 도출한다.
  • HEP 실험 및 과학 공동체가 이식 가능한 병렬화 기술을 채택하기 위한 실질적인 권고 사항을 제공한다.
  • 모든 벤더와 아키텍처에서 저장벽, 이식 가능, 이식 우선의 과학 계산을 가능하게 하는 미래의 C++ 표준 확장 도입을 주장한다.

제안 방법

  • Kokkos, SYCL, Alpaka, OpenMP/OpenACC, C++의 std::execution::parallel의 다섯 가지 주요 이식 가능한 프로그래밍 모델을 평가한다.
  • 실제 실험(CMS, DUNE, ATLAS, ACTS 등)에서 유래한 대표적인 HEP 워크로드를 각 이식성 레이어에 구현하여 실용적 타당성을 평가한다.
  • 개발자 경험, 성능, 이식성, 생태계 성숙도에 중점을 둔 표준화된 메트릭 세트를 사용해 기술 간 비교를 수행한다.
  • 다양한 백엔드에서 픽셀 추적, 스페이스 포인트 생성, 빠른 캘로리메터 시뮬레이션 등의 사용 사례를 직접 구현한다.
  • NVIDIA, AMD, Intel, LLVM, GNU 등의 주요 벤더에서 제공하는 기존 컴파일러 지원을 활용해 실제 성능과 호환성을 테스트한다.
  • 지시자 기반 모델(OpenMP)과 언어 기반 모델(SYCL, Kokkos)을 모두 평가하며, 비동기 실행, 메모리 관리, GPU 오프로딩 지원 여부도 분석한다.

실험 결과

연구 질문

  • RQ1OpenMP, SYCL, Kokkos와 같은 기존 이식 가능한 프로그래밍 모델이 GPU 및 FPGA를 포함한 다양한 하드웨어 플랫폼에서 HEP 워크로드를 효율적으로 컴파일하고 실행할 수 있는가?
  • RQ2다양한 이식 가능한 병렬화 솔루션 간에 개발자 생산성, 성능 이식성, 생태계 성숙도 사이의 주요 상충 관계는 무엇인가?
  • RQ3OpenMP와 같은 지시자 기반 모델과 SYCL, Kokkos와 같은 언어 기반 모델은 HEP 전용 워크로드에서 사용 편의성과 성능 측면에서 어떻게 비교될 수 있는가?
  • RQ4현재 컴파일러와 런타임 시스템이 생산용 HEP 워크로드에 필요한 기능(예: 비동기 커널, 메모리 공간, 벤더 라이브러리 간 상호운용성)을 얼마나 잘 지원하는가?
  • RQ5미래의 C++ 표준 확장은 어떻게 이식 가능한 HEP 소프트웨어 개발을 통합하고 벤더 종속성 문제를 줄일 수 있는가?

주요 결과

  • PPS 프로젝트는 모든 HEP 사용 사례에 이상적인 단일 이식 가능한 솔루션이 아직 존재하지는 않지만, OpenMP, SYCL, Kokkos 등 일부 기술이 다양한 아키텍처에서의 실행 가능성을 잘 보여주었다.
  • OpenMP 타겟 오프로딩은 GPU 가속에 유망한 지원을 보이며, 주요 HPC 벤더들이 이를 위한 컴파일러와 런타임 시스템을 적극적으로 개발하고 있다.
  • C++의 std::execution::parallel(std::par)은 개발자 입장에서 진입 장벽이 낮지만, 아직 컴파일러 지원이 열악하고 특히 GPU 백엔드에서 성능 제약이 크다.
  • Kokkos와 Alpaka는 이종 실행을 위한 강력한 추상화 레이어를 제공하지만, 지시자 기반 모델보다 깊이 있는 통합과 전문 지식이 요구된다.
  • SYCL과 OpenMP는 높은 수준의 추상화와 점점 커지는 산업적 지원 덕분에 큰 잠재력을 보이며, 특히 Intel, NVIDIA, AMD의 지원 덕분이다.
  • 진전이 있음에도 불구하고 컴파일러와 하드웨어 간 성능 및 이식성은 일관되지 않으며, 통합되고 표준화되며 널리 채택된 솔루션이 부족한 것이 과학 소프트웨어의 지속 가능성에 큰 장벽으로 남아 있다.

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

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

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

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