release-2-6-0

# Release 2.6.0 (2020/08/25)

Download
release-2-6-0_1release-2-6-0_download
New Features
release-2-6-0_1release-2-6-0_new_features
Bug Fixes
release-2-6-0_1release-2-6-0_bug_fixes
Deprecated Items
release-2-6-0_1release-2-6-0_deprecated_items
Miscellaneous Items
release-2-6-0_1release-2-6-0_miscellaneous_items

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` and `TF_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