Taskflow is a C++ task-parallel framework designed to build high-performance parallel workflows and complex dependency graphs. It provides a programming model that organizes computational work into directed acyclic graphs, enabling developers to manage concurrency, resource scheduling, and task dependencies across multi-core CPUs and GPU accelerators.
The framework distinguishes itself through its ability to orchestrate heterogeneous systems, allowing for the integration of hardware-accelerated kernels and memory operations into unified execution pipelines. It supports dynamic runtime subflows, which permit the spawning of new tasks during execution to handle unpredictable or recursive workloads, and offers modular composition to nest sub-graphs within larger, reusable structures.
Beyond core scheduling, the project includes a comprehensive suite of parallel algorithms for data processing, such as sorting, reduction, and prefix sums. It also features robust pipeline orchestration for multi-stage data streaming, along with built-in diagnostic tools for profiling performance, monitoring execution progress, and visualizing task dependencies.
The library provides extensive infrastructure for managing graphics hardware, including stream lifecycle management, event coordination, and cross-memory data transfers. It is implemented as a header-only C++ library, facilitating integration into existing high-performance computing environments.