Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

Repo symbol

taskflow repository

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

No packages found.

README

Taskflow

Ubuntu macOS Windows [Wiki][documentation] TFProf [Cite][TPDS22]

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