Skip to main content
QUICK REVIEW

[논문 리뷰] Cpp-Taskflow: A General-purpose Parallel and Heterogeneous Task Programming System at Scale

Tsung‐Wei Huang, Dian-Lun Lin|arXiv (Cornell University)|2020. 04. 23.
Parallel Computing and Optimization Techniques인용 수 1
한 줄 요약

Cpp-Taskflow는 정적 및 동적 작업 스케줄링을 지원하는 유연한 작업 그래프 모델을 통해 고성능 이종 병렬 컴퓨팅을 가능하게 하는 C++ 기반 작업 프로그래밍 시스템이다. 대규모 머신러닝 워크로드에 대해 40-CPU, 4-GPU 시스템에서 oneTBB와 StarPU에 비해 최대 1.5배 빠른 실행 속도, 1.6배 적은 메모리 사용량, 1.7배 적은 코드 라인 수를 달성한다.

ABSTRACT

The Taskflow project addresses the long-standing question: How can we make it easier for developers to write parallel and heterogeneous programs with high performance and simultaneous high productivity? Taskflow develops a simple and powerful task programming model to enable efficient implementations of heterogeneous decomposition strategies. Our programming model empowers users with both static and dynamic task graph constructions to incorporate a broad range of computational patterns including hybrid CPU-GPU computing, dynamic control flow, and irregularity. We develop an efficient heterogeneous work-stealing strategy that adapts worker threads to available task parallelism at any time during the graph execution. We have demonstrated promising performance of Taskflow on both micro-benchmark and real-world applications. As an example, we solved a large machine learning workload by up to 1.5x faster, 1.6x less memory, and 1.7x fewer lines of code than two industrial-strength systems, oneTBB and StarPU, on a machine of 40 CPUs and 4 GPUs.

연구 동기 및 목표

  • 고성능, 생산성 높은 병렬 및 이종 프로그래밍을 작성하는 데 도전하는 것.
  • 하이브리드 CPU-GPU 실행 및 동적 제어 흐름과 같은 복잡한 계산 패턴의 개발을 단순화하는 것.
  • 런타임 병렬성에 적응함으로써 다양한 하드웨어 간에 효율적인 작업 스케줄링을 가능하게 하는 것.
  • 기존 산업용 작업 시스템에 비해 코드 복잡성을 줄이고 성능을 향상시키는 것.

제안 방법

  • 시스템은 정적 및 동적 작업 그래프 구축을 모두 지원하는 일반 목적의 작업 프로그래밍 모델을 사용한다.
  • 실행 중에 가용한 작업 병렬성에 따라 워커 스레드를 적응시키는 이종 워크스틸링 전략을 적용한다.
  • 유연한 작업 의존성으로 인해 비정규적이고 동적 계산 패턴을 지원하기 위해 Taskflow가 통합된다.
  • 런타임은 CPU와 GPU 간의 작업 분배를 효율적으로 관리하여 동기화 오버헤드를 최소화한다.
  • 최소한의 버일러플레이트를 제공하는 C++ 네이티브 API를 통해 표현력 있고 고수준의 작업 조합을 가능하게 한다.
  • 런타임 조건에 따라 가용 실행 단위 간에 작업을 재분배함으로써 동적으로 작업 부하를 균형 잡는다.

실험 결과

연구 질문

  • RQ1어떻게 하이브리드 시스템을 위한 정적 및 동적 작업 그래프를 모두 지원하는 작업 프로그래밍 모델을 설계할 수 있는가?
  • RQ2동적 워크로드에서 CPU와 GPU 간에 효율적인 로드 밸런싱을 가능하게 하는 스케줄링 전략은 무엇인가?
  • RQ3통합된 작업 시스템이 전문 산업용 시스템에 비해 성능, 메모리 사용량, 코드 단순성 측면에서 뛰어나게 성능을 낼 수 있는가?
  • RQ4이종 환경에서 비정규적이고 비정규적인 구조를 가진 계산 패턴은 어떻게 처리하는가?
  • RQ5단일 작업 프레임워크가 성능을 희생시키지 않고 개발 복잡성을 얼마나 줄일 수 있는가?

주요 결과

  • Cpp-Taskflow는 40-CPU, 4-GPU 머신에서 대규모 머신러닝 워크로드에 대해 oneTBB와 StarPU에 비해 최대 1.5배 빠른 실행 속도를 달성했다.
  • 동일한 워크로드에서 두 산업용 시스템에 비해 최대 1.6배 적은 메모리 사용량을 기록했다.
  • oneTBB와 StarPU에 비해 코드 크기가 최대 1.7배 줄어들어 생산성 향상을 시사했다.
  • 이종 워크스틸링 전략은 런타임 실행 중 동적 작업 병렬성에 효과적으로 적응했다.
  • 최소한의 성능 오버헤드로 하이브리드 CPU-GPU 컴퓨팅과 동적 제어 흐름과 같은 복잡한 패턴을 성공적으로 지원했다.
  • 작업 그래프 모델은 비정규적이고 데이터에 의존하는 계산 워크플로우의 효율적 구현을 가능하게 했다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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