Skip to main content
QUICK REVIEW

[논문 리뷰] Optimizing ccNUMA locality for task-parallel execution under OpenMP and TBB on multicore-based systems

Markus Wittmann, Georg Hager|arXiv (Cornell University)|2010. 12. 30.
Parallel Computing and Optimization Techniques참고 문헌 9인용 수 12
한 줄 요약

이 논문은 ccNUMA 시스템에서 작업 병렬 워크로드의 데이터 국소성 최적화를 위해 소프트웨어 계층을 제안한다. 이 계층은 작업을 국소성 기반 큐에 정렬하여 스레드가 자신의 로컬 메모리 도메인에서 데이터를 처리하도록 보장한다. 이 방법은 각 도메인 내에서 동적 로드 밸런싱을 유지하면서 비국소 메모리 액세스를 최소화하여, 특히 비정규적 또는 로드 불균형 워크로드에서 OpenMP 및 TBB 워크로드에서 성능을 크게 향상시킨다.

ABSTRACT

Task parallelism as employed by the OpenMP task construct or some Intel Threading Building Blocks (TBB) components, although ideal for tackling irregular problems or typical producer/consumer schemes, bears some potential for performance bottlenecks if locality of data access is important, which is typically the case for memory-bound code on ccNUMA systems. We present a thin software layer ameliorates adverse effects of dynamic task distribution by sorting tasks into locality queues, each of which is preferably processed by threads that belong to the same locality domain. Dynamic scheduling is fully preserved inside each domain, and is preferred over possible load imbalance even if nonlocal access is required, making this strategy well-suited for typical multicore-mutisocket systems. The effectiveness of the approach is demonstrated by using a blocked six-point stencil solver as a toy model.

연구 동기 및 목표

  • 비국소 메모리 액세스로 인한 성능 저하 문제를 해결하기 위해 ccNUMA 시스템에서 작업 병렬 응용 프로그램의 성능 저하를 완화한다.
  • OpenMP 또는 TBB 프로그래밍 모델에 대한 수정 없이 효과적인 데이터 국소성 최적화를 가능하게 한다.
  • 각 국소성 도메인 내에서 동적 로드 밸런싱을 유지하면서 도메인 간 메모리 액세스를 최소화한다.
  • 비정규적 또는 로드 불균형 워크로드에서 국소성 큐의 효과를 실질적인 ccNUMA 하드웨어에서 평가한다.
  • 기존 메커니즘인 TBB의 애자일리티 파artitioner 및 라운드로빈 메모리 배치와의 성능 비교를 수행한다.

제안 방법

  • 데이터의 대상 메모리 도메인에 따라 작업을 다수의 국소성 큐에 정렬하는 사용자 수준의 소프트웨어 계층을 도입한다.
  • 각 스레드를 특정 국소성 도메인에 할당하고, 주로 자신의 로컬 큐에서 작업을 처리하도록 보장한다.
  • 로컬 도메인 내에서 동적 스케줄링을 유지하여, 작업이 비국소 데이터 액세스가 필요할 경우에도 로드 밸런싱을 유지한다.
  • 로드 불균형이 발생할 경우 작업 도메인 간에 작업을 재분배하기 위해 워크 스틸링 메커니즘을 사용하며, 엄격한 국소성보다는 로드 밸런싱을 우선시한다.
  • 표준 OpenMP 태스크링 및 TBB의 parallel_for를 사용하여 커스터마이징된 파artitioner 또는 동시 큐를 활용해 메커니즘을 구현한다.
  • 스레드-코어 애자일리티 및 런타임 시 국소성 도메인 ID 탐지 기능을 활용해 작업을 적절한 큐에 매핑한다.

실험 결과

연구 질문

  • RQ1경량 소프트웨어 계층이 ccNUMA 시스템에서 작업 병렬 응용 프로그램의 데이터 국소성을 효과적으로 향상시킬 수 있는가?
  • RQ2제안된 국소성 큐 메커니즘은 TBB의 네이티브 애자일리티 파artitioner와 비교해 성능 및 확장성 측면에서 어떻게 성과를 내는가?
  • RQ3이 방법은 비정규적 또는 로드 불균형 워크로드에서 비국소 메모리 액세스를 얼마나 줄이고 대역폭 활용도를 향상시키는가?
  • RQ4메모리 국소성 최적화를 하면서도 동적 로드 밸런싱을 유지할 수 있는가?
  • RQ5이 기법은 흐린 행렬 해법기나 스텐실 계산과 같은 실제 과학 워크로드에 효과적으로 적용될 수 있는가?

주요 결과

  • 국소성 큐 메커니즘은 비국소 메모리 액세스를 크게 줄이고, 특히 비정규적 또는 로드 불균형 워크로드에서 ccNUMA 시스템의 성능을 향상시킨다.
  • AMD Istanbul 시스템에서 이 방법은 라운드로빈 메모리 배치에 가까운 최적 성능을 달성했으며, 단순한 동적 스케줄링보다 뛰어난 성능을 보였다.
  • TBB 애자일리티 파artitioner도 국소성 큐 방법과 유사한 성능을 달성했지만, 후자는 더 높은 제어력과 확장성 확보가 가능했다.
  • TBB의 parallel_do 구조에 국소성 큐를 적용하면 내장 파artitioner보다 이점이 있을 수 있으나, 본 연구에서는 이 부분에 대한 완전한 평가가 이루어지지 않았다.
  • 엄격한 스레드-코어 애자일리티가 없더라도, 국소성 도메인 ID를 런타임에 탐지할 수 있으므로 이 방법은 효과가 있다.
  • 희귀 행렬 해법기에서 시간 차단 및 통신-계산 겹침을 가능하게 하기 위해 큐를 공유 캐시 레벨과 연계할 수 있다.

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

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

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

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