Skip to main content
QUICK REVIEW

[논문 리뷰] Parallel Work Inflation, Memory Effects, and their Empirical Analysis

Umut A. Acar, Arthur Charguéraud|arXiv (Cornell University)|2017. 09. 12.
Parallel Computing and Optimization Techniques참고 문헌 13인용 수 3
한 줄 요약

이 논문은 관측된 스피드업을 세 가지 성분으로 분해함으로써 경량이며 경험적으로 기반을 둔 병렬 성능 저하 원인 분석 방법을 제안한다: 병렬 작업, 유휴 시간, 작업 과잉. 여기서 작업 과잉은 메모리 효과와 통신 오버헤드를 포괄한다. 런타임과 유휴 시간만 측정함으로써 이 방법은 메모리 관련 비효율성의 영향을 격리시켜 프로그래머가 최소한의 인스트루멘테이션으로 병렬 코드를 진단하고 최적화할 수 있도록 한다.

ABSTRACT

In this paper, we propose an empirical method for evaluating the performance of parallel code. Our method is based on a simple idea that is surprisingly effective in helping to identify causes of poor performance, such as high parallelization overheads, lack of adequate parallelism, and memory effects. Our method relies on only the measurement of the run time of a baseline sequential program, the run time of the parallel program, the single-processor run time of the parallel program, and the total amount of time processors spend idle, waiting for work. In our proposed approach, we establish an equality between the observed parallel speedups and three terms that we call parallel work, idle time, and work-inflation, where all terms except work inflation can be measured empirically, with precision. We then use the equality to calculate the difficult-to-measure work-inflation term, which includes increased communication costs and memory effects due to parallel execution. By isolating the main factors of poor performance, our method enables the programmer to assign blame to certain properties of the code, such as parallel grain size, amount of parallelism, and memory usage. We present a mathematical model, inspired by the work-span model, that enables us to justify the interpretation of our measurements. We also introduce a method to help the programmer to visualize both the relative impact of the various causes of poor performance and the scaling trends in the causes of poor performance. Our method fits in a sweet spot in between state-of-the-art profiling and visualization tools. We illustrate our method by several empirical studies and we describe a few experiments that emphasize the care that is required to accurately interpret speedup plots.

연구 동기 및 목표

  • 병렬 스피드업에 영향을 주는 메모리 효과 및 기타 성능 요인들의 상대적 영향을 정량화할 수 있는 도구의 부족을 해결하기 위해.
  • 생산용 병렬 코드에서 낮은 확장성의 원인을 분리하고 진단할 수 있도록 프로그래머를 지원하기 위해.
  • 성능 측정을 왜곡할 수 있는 풍부한 인스트루먼테이션 도구에 대한 실용적이고 저비용 대안을 제공하기 위해.
  • 프로세서 수가 증가함에 따라 오버헤드, 유휴 시간, 작업 과잉 등의 요소들이 스피드업 추세에 어떻게 영향을 미치는지 시각화하기 위해.

제안 방법

  • 이 방법은 런타임과 유휴 시간 측정만을 사용하여 관측된 병렬 스피드업을 세 성분으로 분해한다: 병렬 작업, 유휴 시간, 작업 과잉.
  • 관측된 스피드업과 이 세 성분 간의 수학적 등식을 수립하며, 여기서 병렬 작업과 유휴 시간만 직접 측정 가능하다.
  • 작업 과잉은 등식을 통해 간접적으로 유도되며, 가짜 공유, 메모리 일관성, 동기화 오버헤드와 같은 숨겨진 비용을 나타낸다.
  • 이 접근법은 워크-스팬 모델을 영감으로 삼지만, 이론적 최악의 경우 경계가 아닌 경험적 실행 데이터에 초점을 맞춘다.
  • 각 성능 요인의 상대적 기여도와 추세를 프로세서 수에 따라 시각화하기 위해 요인별 스피드업 플롯을 도입한다.
  • 이 방법은 최소한의 인스트루먼테이션만 필요하다: 순차 기준 실행, 단일 프로세서 병렬 실행의 시간 측정, 그리고 다중 프로세서 실행에서의 총 유휴 시간 측정.

실험 결과

연구 질문

  • RQ1병렬 프로그램에서 스피드업 손실의 몇 퍼센트가 메모리 효과와 통신 오버헤드에 기인하는가?
  • RQ2직접 측정하지 않고도 하드웨어 수준의 비효율성인 작업 과잉을 어떻게 분리하고 정량화할 수 있는가?
  • RQ3유휴 시간과 알고리즘 오버헤드는 실제 병렬 응용 프로그램에서 낮은 확장성에 얼마나 기여하는가?
  • RQ4경량이며 경험적으로 기반을 둔 방법이 기존 프로파일링 도구보다 생산 코드에 대해 더 실용적인 통찰을 제공할 수 있는가?

주요 결과

  • 메모리 서브시스템 효과와 동기화 비용을 포함한 작업 과잉은 낮은 병렬 확장성의 주요 원인이나 자주 숨겨져 있다.
  • 이 방법은 런타임과 유휴 시간 측정만으로도 작업 과잉을 성공적으로 격리하여 메모리 관련 성능 저하를 정밀하게 진단할 수 있도록 한다.
  • 요인별 스피드업 플롯은 Cilksort 및 최대 독립 집합 벤치마크에서 낮은 확장성의 주요 원인이 알고리즘 오버헤드가 아니라 작업 과잉과 유휴 시간임을 드러낸다.
  • 성능 요인의 변화를 병렬성 증가에 따라 시각화함으로써 이 방법은 더 큰 코어 수로의 확장성 추세를 정확하게 외삽할 수 있다.
  • 이 방법은 인스트루먼테이션에 의한 성능 왜곡을 피하기 때문에 생산 코드에 대해 기존 프로파일링 도구보다 실용성과 정확도에서 뛰어나다.
  • 경험적 연구에서 스피드업 곡선만으로는 근본 원인을 진단하기에 부족하며, 제안된 분해 방법이 최적화를 위한 실질적인 통찰을 제공한다.

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

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

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

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