Taskflow
2.7.0
|
Taskflow helps you quickly write parallel task programs with high performance scalability and simultaneous high productivity. It is faster, more expressive, fewer lines of code, and easier for drop-in integration than many of existing task programming frameworks.
Taskflow is committed to support both academic and industry research projects, making it reliable and cost-efficient to develop large-scale parallel applications. Our users say:
See a quick presentation and visit our GitHub to learn more about Taskflow.
Taskflow has a unified interface for both static tasking and dynamic tasking, allowing users to quickly master our parallel task programming model in a natural idiom.
Static Tasking | Dynamic Tasking |
Taskflow supports conditional tasking for you to implement cyclic and dynamic control flows that are otherwise difficult to do with existing task programming frameworks.
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 supports heterogeneous tasking for you to accelerate a wide range of scientific computing applications by harnessing the power of CPU-GPU collaborative computing.
Taskflow provides visualization and tooling (tfprof) needed for profiling Taskflow programs.
Taskflow is header-only and there is no need for installation. Simply download the source and copy the headers under the directory taskflow/
to your project.
Here is a rather simple program to get you started.
The program creates four tasks A, B, C, and D. The dependency constraints force A to run before B and C, and D to run after B and C. The maximum concurrency is this example is two, where B and C can run at the same time.
Taskflow is written in C++14 and is built on top of C++ standardized threading libraries. To compile the above program, you need to tell the compiler where to find the Taskflow header files. For example, with gcc you need the -I
option.
The execution order of B and C might differ as they can run concurrently.
To use Taskflow, you only need a compiler that supports C++14:
Taskflow works on Linux, Windows, and Mac OS X.
Taskflow is open-source under permissive MIT license.