Skip to main content
QUICK REVIEW

[논문 리뷰] Towards Autotuning of OpenMP Applications on Multicore Architectures

Jakub Katarzynski, Maciej Cytowski|arXiv (Cornell University)|2014. 01. 16.
Parallel Computing and Optimization Techniques참고 문헌 4인용 수 7
한 줄 요약

이 논문은 IBM Power775 시스템에서 하이브리드 MPI+OpenMP 워크로드의 동적 스레드 수 최적화를 가능하게 하기 위해 OpenMP 소스 코드를 자동으로 인스트루먼트하여 하드웨어 성능 카운터와 실행 시간을 측정하는 자동 튜닝 도구인 PdtTagger를 제시한다. 성능 카운터 데이터와 스레드 확장성 간의 상관관계를 통해 응용 프로그램 인식형 스레드 최적화를 지원한다.

ABSTRACT

In this paper we describe an autotuning tool for optimization of OpenMP applications on highly multicore and multithreaded architectures. Our work was motivated by in-depth performance analysis of scientific applications and synthetic benchmarks on IBM Power 775 architecture. The tool provides an automatic code instrumentation of OpenMP parallel regions. Based on measurement of chosen hardware performance counters the tool decides on the number of parallel threads that should be used for execution of chosen code fragments.

연구 동기 및 목표

  • 높은 다중코어 아키텍처에서 OpenMP 응용 프로그램의 최적화되지 않은 스레드 수 선택 문제를 해결한다.
  • 특정 컴파일러에 국한되며 소스 수준의 제어 기능이 부족한 기존 바이너리 인스트루먼트 도구(예: hpctInst)의 한계를 극복한다.
  • 런타임 성능 피드백 기반으로 하이브리드 MPI+OpenMP 응용 프로그램에서 각 병렬 영역에 대해 자동으로 스레드 수를 최적화할 수 있도록 한다.
  • POWER 아키텍처에서 하드웨어 성능 카운터를 사용한 세밀한 성능 분석을 지원하는 확장 가능한 자동 튜닝 프레임워크를 개발한다.
  • 자동 인스트루먼트와 런타임 의사결정을 통해 과학적 HPC 워크로드에서 적응형 스레드 관리를 구현할 수 있도록 한다.

제안 방법

  • 프로그램 데이터베이스 툴킷(PDT)을 사용하여 소스 코드를 분석하고 프로그램 구성요소의 구조적 표현을 구축한다.
  • 선택된 OpenMP 병렬 영역의 시작과 끝에 라이브러리 호출을 삽입하여 영역 경계를 표시함으로써 소스 코드를 인스트루먼트한다.
  • IBM의 libhpm 인터페이스를 통해 실행 시간과 하드웨어 성능 카운터를 측정할 수 있도록 커스터마이징된 라이브러리와 응용 프로그램을 링크한다.
  • 각 스레드와 영역별로 실행 시간 및 이벤트 수(예: 캐시 미스, 명령어 처리량)를 포함한 성능 데이터를 수집한다.
  • HPM_VIZ_OUTPUT와 같은 환경 변수를 통해 다양한 형식(예: hpm, viz)으로 출력하여 후처리 및 시각화를 지원한다.
  • pmapi 라이브러리를 통합하여 런타임 성능 모니터링을 지원하고 실시간 카운터 분석 기반으로 동적 스레드 수 적응 결정을 가능하게 한다.

실험 결과

연구 질문

  • RQ1POWER 아키텍처에서 OpenMP 응용 프로그램의 스레드 확장성과 가장 강하게 상관관계가 있는 하드웨어 성능 카운터는 무엇인가?
  • RQ2런타임 성능 카운터 기반으로 각 OpenMP 영역에 대해 최적의 스레드 수를 자동으로 추천할 수 있는 데이터 기반 히우리스틱(예: 결정 트리)을 구축할 수 있는가?
  • RQ3IBM Power775 시스템에서 과학적 및 합성 벤치마크의 성능은 SMT 모드(SMT2, SMT4)에 따라 어떻게 달라지는가?
  • RQ4자세한 제어 기능과 유연성 측면에서 소스 수준의 인스트루먼트가 바이너리 수준의 인스트루먼트보다 얼마나 뛰어난가?
  • RQ5전역 OMP_NUM_THREADS 설정 대비 영역별 성능 데이터 기반 자동 튜닝이 하이브리드 MPI+OpenMP 워크로드에서 전체 응용 프로그램 성능 향상에 얼마나 기여하는가?

주요 결과

  • SMT 모드에서의 성능 향상은 응용 프로그램 유형에 따라 크게 달라지며, 처리량 중심의 워크로드가 더 높은 SMT 수준에서 가장 큰 이점을 얻는다.
  • 메모리 집약적인 응용 프로그램은 SMT4에서 메모리 대역폭 경쟁과 캐시 압박 증가로 인해 성능이 저하되는 경우가 많다.
  • PdtTagger 도구는 C 코드 내 OpenMP 영역을 성공적으로 인스트루먼트하고 정확한 실행 시간 및 하드웨어 성능 카운터 데이터를 수집한다.
  • PdtTagger를 통한 인스트루먼트는 각 스레드의 실행 시간과 이벤트 수를 포함한 개별 OpenMP 영역의 세밀한 프로파일링을 가능하게 한다.
  • 도구는 MPI 프로세스와 OpenMP 영역 별로 별도의 성능 프로파일을 생성함으로써 하이브리드 MPI+OpenMP 응용 프로그램을 지원한다.
  • 프레임워크는 확장 가능하며, 향후 pmapi와 같은 의사결정 라이브러리와의 통합을 통해 실시간 성능 피드백 기반으로 런타임 스레드 수 적응을 지원할 수 있다.

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

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

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

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