Release 2.6.0 (2020/08/25)
Taskflow 2.6.0 is the 8th release in the 2.x line! This release includes several new changes such as CPU-GPU tasking, algorithm collection, enhanced web-based profiler, documentation, and unit tests.
We have a new webpage for Taskflow!
Download
Taskflow 2.6.0 can be downloaded from here.
New Features
- added explicit join behavior of tf::
Subflow (see Join a Subflow and Fibonacci Number) - added version macro (
TF_VERSION
,TF_MAJOR_VERSION
,TF_MINOR_VERSION
,TF_PATCH_VERSION
) to retrieve version info programmatically (tf::version) - added
TF_BUILD_TESTS
andTF_BUILD_EXAMPLES
(default on) to let users disable the build of tests and examples (see Building and Installing) - renamed tf::Taskflkow::parallel_for to tf::
Taskflow:: for_each to follow the STL convention - redesigned tf::
Taskflow:: for_each and tf:: Taskflow:: for_each_index using OpenMP-styled scheduling algorithms; this redesign largely improved the performance of parallel-for using a single dynamic task return, but it breaks the previous API that returned a std:: pair of tasks to synchronize on a set of static parallel-for tasks. Yet, we believe adopting this change is not difficult (see Parallel Iterations). - added multiple unit tests for tf::
Taskflow:: for_each and tf:: Taskflow:: for_each_index at different partition algorithms; we have implemented our partition algorithms based on the OpenMP library implementation of LLVM and GCC. - added Mandelbrot application in the benchmark to evaluate the performance of parallel-for
- redesigned tf::
Taskflow:: reduce and tf:: Taskflow:: transform_reduce based on the parallel architecture of tf:: Taskflow:: for_each (see Parallel Reduction).
Bug Fixes
- fixed the bug of iteratively detaching a subflow from a run loop or a condition loop (see Detach a Subflow)
- fixed the bug of conflict macro with boost (#184)
Deprecated Items
- removed two methods, tf::detached and tf::joined, due to the new join/detach behavior
Miscellaneous Items
- improved the section Observe Thread Activities