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