taskflow/taskflow

A General-purpose Task-parallel Programming System in C++

해결하는 문제

Taskflow는 태스크 병렬 프로그램을 작성하는 과정을 단순화하기 위해 설계된 고성능 C++ 라이브러리입니다. 병렬로 실행되어야 하는 태스크 간의 의존성 관리 복잡성을 해결하여, 효율적이고 확장 가능한 병렬 소프트웨어를 작성하는 데 필요한 코드 양을 줄여줍니다.

작동 방식

Taskflow는 헤더 전용(header-only) 프레임워크를 제공하여 개발자가 태스크 그래프(tf::Taskflow 객체)를 정의하고 실행기를 사용하여 이를 실행할 수 있도록 합니다. precedesucceed 메서드를 사용한 명시적 의존성이 있는 태스크 정의뿐만 아니라, 재귀적 태스크 처리(subflows), 제어 흐름을 위한 조건부 태스크 처리, 여러 태스크 그래프를 더 큰 모듈형 블록으로 합성하는 것과 같은 복잡한 패턴을 지원합니다.

대상 사용자

CPU 및 GPU(Nvidia CUDA Graph 통합을 통해)에 걸친 정교한 병렬화가 필요한 고성능 컴퓨팅(HPC) 및 과학 계산 애플리케이션을 작성하는 개발자를 대상으로 합니다.

주요 특징

  • 헤더 전용: 기존 C++ 프로젝트에 쉽게 설치 및 통합할 수 있습니다.
  • 이종 컴퓨팅(Heterogeneous Computing): Nvidia CUDA Graph를 사용하여 GPU로 태스크를 오프로드하는 것을 지원합니다.
  • 고급 태스크 처리: 재귀적 서브플로우, 조건부 태스크 처리 및 비동기 태스크 처리를 지원합니다.
  • 내장 프로파일러: 태스크 실행을 시각화하고 프로파일링하기 위한 웹 기반 인터페이스인 TFProf가 포함되어 있습니다。
  • 병렬 알고리즘: 표준 C++ 구문을 사용하여 for_each, reduce, sort와 같은 일반적인 패턴에 대한 내장 지원을 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트