taskflow/taskflow
A General-purpose Task-parallel Programming System in C++
해결하는 문제
Taskflow는 태스크 병렬 프로그램을 작성하는 과정을 단순화하기 위해 설계된 고성능 C++ 라이브러리입니다. 병렬로 실행되어야 하는 태스크 간의 의존성 관리 복잡성을 해결하여, 효율적이고 확장 가능한 병렬 소프트웨어를 작성하는 데 필요한 코드 양을 줄여줍니다.
작동 방식
Taskflow는 헤더 전용(header-only) 프레임워크를 제공하여 개발자가 태스크 그래프(tf::Taskflow 객체)를 정의하고 실행기를 사용하여 이를 실행할 수 있도록 합니다. precede 및 succeed 메서드를 사용한 명시적 의존성이 있는 태스크 정의뿐만 아니라, 재귀적 태스크 처리(subflows), 제어 흐름을 위한 조건부 태스크 처리, 여러 태스크 그래프를 더 큰 모듈형 블록으로 합성하는 것과 같은 복잡한 패턴을 지원합니다.
대상 사용자
CPU 및 GPU(Nvidia CUDA Graph 통합을 통해)에 걸친 정교한 병렬화가 필요한 고성능 컴퓨팅(HPC) 및 과학 계산 애플리케이션을 작성하는 개발자를 대상으로 합니다.
주요 특징
- 헤더 전용: 기존 C++ 프로젝트에 쉽게 설치 및 통합할 수 있습니다.
- 이종 컴퓨팅(Heterogeneous Computing): Nvidia CUDA Graph를 사용하여 GPU로 태스크를 오프로드하는 것을 지원합니다.
- 고급 태스크 처리: 재귀적 서브플로우, 조건부 태스크 처리 및 비동기 태스크 처리를 지원합니다.
- 내장 프로파일러: 태스크 실행을 시각화하고 프로파일링하기 위한 웹 기반 인터페이스인 TFProf가 포함되어 있습니다。
- 병렬 알고리즘: 표준 C++ 구문을 사용하여
for_each,reduce,sort와 같은 일반적인 패턴에 대한 내장 지원을 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트