Repository Summary
Checkout URI | https://github.com/taskflow/taskflow.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-06-30 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
README
Taskflow
Taskflow helps you quickly write parallel and heterogeneous task programs in modern C++
Why Taskflow?
Taskflow is faster, more expressive, and easier for drop-in integration than many of existing task programming frameworks in handling complex parallel workloads.
Taskflow lets you quickly implement task decomposition strategies that incorporate both regular and irregular compute patterns, together with an efficient work-stealing scheduler to optimize your multithreaded performance.
Static Tasking | Subflow Tasking |
---|---|
Taskflow supports conditional tasking for you to make rapid control-flow decisions across dependent tasks to implement cycles and conditions that were otherwise difficult to do with existing tools.
Conditional Tasking |
---|
Taskflow is composable. You can create large parallel graphs through composition of modular and reusable blocks that are easier to optimize at an individual scope.
Taskflow Composition |
---|
Taskflow supports heterogeneous tasking for you to accelerate a wide range of scientific computing applications by harnessing the power of CPU-GPU collaborative computing.
Concurrent CPU-GPU Tasking |
---|
Taskflow provides visualization and tooling needed for profiling Taskflow programs.
Taskflow Profiler |
---|
![]() |
We are committed to support trustworthy developments for both academic and industrial research projects in parallel computing. Check out Who is Using Taskflow and what our users say:
- “Taskflow is the cleanest Task API I’ve ever seen.” Damien Hocking @Corelium Inc
- “Taskflow has a very simple and elegant tasking interface. The performance also scales very well.” [Glen Fraser][totalgee]
- “Taskflow lets me handle parallel processing in a smart way.” Hayabusa @Learning
- “Taskflow improves the throughput of our graph engine in just a few hours of coding.” Jean-Michaël @KDAB
- “Best poster award for open-source parallel programming library.” [Cpp Conference 2018][Cpp Conference 2018]
- “Second Prize of Open-source Software Competition.” ACM Multimedia Conference 2019
See a quick presentation and visit the [documentation][documentation] to learn more about Taskflow. Technical details can be referred to our [IEEE TPDS paper][TPDS22].
Start Your First Taskflow Program
The following program (simple.cpp
) creates a taskflow of four tasks
A
, B
, C
, and D
, where A
runs before B
and C
, and D
runs after B
and C
.
When A
finishes, B
and C
can run in parallel.
Try it live on Compiler Explorer (godbolt)!
```cpp #include <taskflow/taskflow.hpp> // Taskflow is header-only
int main(){
tf::Executor executor; tf::Taskflow taskflow;
auto [A, B, C, D] = taskflow.emplace( // create four tasks [] () { std::cout « “TaskA\n”; }, [] () { std::cout « “TaskB\n”; }, [] () { std::cout « “TaskC\n”; }, [] () { std::cout « “TaskD\n”; } );
A.precede(B, C); // A runs before B and C D.succeed(B, C); // D runs after B and C
File truncated at 100 lines see the full file