데이터 스코프 분석 도구 권고와 사양
초록
ESCAPE 프로젝트의 일환으로 수행된 본 보고서는 기상·기후 모델에서 데이터 이동을 최소화하고 재사용을 극대화하기 위한 데이터 스코프 분석 도구들을 조사한다. 조사 결과를 토대로 현재 가장 적합한 도구를 선정하고, NWP 애플리케이션에 특화된 기능 확장을 제안한다.
상세 분석
ESCAPE 프로젝트는 차세대 초고성능 컴퓨팅 환경에서 기상예보와 기후 시뮬레이션의 효율성을 높이기 위해 ‘Weather & Climate dwarfs’를 정의하고, 이를 다양한 하드웨어 아키텍처에 최적화하는 작업을 진행한다. 이러한 맥락에서 데이터 이동 비용이 연산 비용을 크게 초과하는 현대 슈퍼컴퓨터의 메모리 계층 구조를 고려하면, 데이터 로컬리티와 스코프를 정확히 파악하는 것이 성능 최적화의 핵심이 된다. 특히 OpenACC·OpenMP와 같은 디렉티브 기반 가속기 프로그래밍 모델에서는 호스트와 디바이스 간 데이터 전송을 최소화하기 위해 변수의 생존 기간(lifetime), 접근 패턴(read/write), 재사용 가능성 등을 자동 혹은 반자동으로 추출할 수 있는 도구가 필수적이다.
본 보고서는 현재 시장에 존재하는 12개의 도구(예: Intel VTune Amplifier, NVIDIA Nsight Compute, LLVM‑based Polly, TAU, HPCToolkit, Score‑P, OpenSpeedShop, Paraver, LIKWID, PAPI, Roofline Analyzer, 그리고 상용 데이터 흐름 분석기)를 체계적으로 평가하였다. 평가 기준은 ① 데이터 스코프(호스트·디바이스, 스레드 레벨) 식별 정확도, ② 메모리 접근 유형(읽기·쓰기·읽기‑쓰기 혼합) 구분 능력, ③ 자동 코드 삽입(데이터 이동 pragma) 지원 여부, ④ 사용자 정의 규칙 및 플러그인 확장성, ⑤ 대규모 코드베이스(수백만 LOC)에서의 스케일링, ⑥ 시각화와 보고서 자동 생성 기능이다.
조사 결과, 오픈소스 기반의 LLVM‑Polly와 HPCToolkit이 가장 높은 정확도와 확장성을 보였으며, 특히 Polly는 컴파일 타임에 루프 변환과 메모리 접근 분석을 수행해 데이터 스코프 정보를 메타데이터 형태로 출력한다. 그러나 Polly는 OpenACC/ OpenMP 디렉티브와의 연동이 미비하고, 사용자 정의 규칙을 정의하기 위한 인터페이스가 제한적이다. 반면 HPCToolkit은 런타임 프로파일링 기반으로 실제 메모리 트래픽을 측정하고, 그 결과를 기반으로 데이터 이동 그래프를 자동 생성한다. 다만, 디바이스‑특화 분석 기능이 부족하고, 대규모 MPI+OpenMP 혼합 어플리케이션에서의 오버헤드가 상대적으로 높다.
상용 도구인 Intel VTune과 NVIDIA Nsight는 GPU 메모리 계층(레지스터, 공유 메모리, L2, 글로벌)까지 상세히 분석할 수 있지만, 라이선스 비용과 폐쇄형 구조 때문에 연구 커뮤니티에서의 보급이 제한적이다. 또한, 이들 도구는 주로 성능 병목을 찾는 데 초점이 있어 데이터 스코프 자체를 명시적으로 표시해 주지는 않는다.
따라서 보고서는 현재 가장 현실적인 선택지로 HPCToolkit에 기반한 커스텀 플러그인을 제안한다. 플러그인은 (1) OpenACC/OpenMP pragma 삽입 자동화, (2) 변수별 데이터 스코프와 재사용 가능성을 시각화하는 대시보드, (3) NWP 특유의 다중 물리 모듈 간 데이터 흐름을 추적하는 인터‑모듈 매핑 기능을 포함한다. 이러한 확장은 기존 HPCToolkit의 프로파일링 파이프라인에 LLVM IR 레벨에서 메타데이터를 주입함으로써 구현 가능하며, 기존 워크플로우에 최소한의 침투만으로도 적용될 수 있다. 최종적으로는 데이터 이동량을 정량화하고, 자동으로 최소 데이터 전송을 보장하는 pragma를 삽입함으로써, ESCAPE 프로젝트의 목표인 에너지 효율적인 기상·기후 시뮬레이션 구현에 직접적인 기여를 할 수 있다.
댓글 및 학술 토론
Loading comments...
의견 남기기