TL;DR
- LLVM 패스가 MPI 호출 인수에 영향을 주지 않는 계산을 정적으로 식별해 제거하며, 원래 통신 의미를 보존하는 더 빠른 프로그램을 생성함.
- 프로그램의 데이터·제어 의존성을 거슬러 통신 변수 상태를 전파하고, 재귀·반복문·동적 라이브러리·메모리 할당을 처리함.
- Lulesh와 miniFE를 포함한 실제 고성능 컴퓨팅(HPC) 코드에 분석을 적용함.
- 생성된 스켈레톤이 원본 애플리케이션의 통신 패턴을 재현하는지 검증함.
- 전체 애플리케이션 대신 스켈레톤으로 매개변수 탐색을 수행해 MPI 런타임 튜닝을 가속하는 활용 사례를 제시함.
연구 개요
- Quentin Buot, Emmanuel Jeannot, Pierre Lemarinier, Guillaume Mercier, Richard Sartori가 MPI 애플리케이션 자동 스켈레톤화를 위한 LLVM 패스를 제시함.
- 이 패스는 MPI 호출 인수에 영향을 미치지 않는 계산을 정적으로 식별해 제거하고, 원본의 통신 의미를 보존하면서 실행 속도가 훨씬 빠른 프로그램을 생성함.
분석 방식과 구현 과제
- 패스는 LLVM 중간 표현(LLVM IR)에서 동작하며, MPI 호출 지점에서 시작해 프로그램의 데이터 의존성과 제어 의존성을 거슬러 통신 변수 상태를 전파함.
- 실제 비단순 HPC 코드에 분석을 적용할 때 발생하는 재귀, 반복문, 동적 라이브러리, 메모리 할당 문제를 처리함.
- 적용 대상으로 Lulesh와 miniFE를 포함함.
검증과 활용
- 생성된 스켈레톤이 원본 애플리케이션의 통신 패턴을 재현하는지 검증함.
- 구체적인 활용 사례로, 전체 애플리케이션이 아니라 스켈레톤에서 매개변수 탐색을 수행해 MPI 런타임 튜닝을 가속하는 방식을 제시함.
논문 정보
- 논문 제목: *An LLVM Pass for Automatic Skeletonization of MPI Applications*.
- 발표 정보: SC 2026, 제12회 LLVM Compiler Infrastructure in HPC 연례 워크숍, 2026년 11월, 미국 시카고.
- 저자 소속: TADAAM, Bull atos technologies, LaBRI, Université de Bordeaux, CNRS, Inria.
- 핵심어: 스켈레톤화, MPI, 정적 분석, 프로그램 슬라이싱, LLVM.
- HAL 식별자: hal-05770025, 버전 1. 라이선스: CC BY 4.0.
- 논문 링크: https://inria.hal.science/hal-05770025
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요