release-2-5-0

# Release 2.5.0 (2020/06/01)

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

Starting from v2.5.0, we have renamed Cpp-Taskflow to Taskflow to broaden its impact and support. Taskflow will explore multiple scopes of applications and language bindings, rather than just C++. This also made Taskflow naming more succinct and concise.

Taskflow 2.5.0 is the 7th release in the 2.x line! This release includes several new changes such as CPU-GPU tasking, web-based profiler, documentation, and unit tests.

# Download

Taskflow 2.5.0 can be downloaded from here.

To download the newest version of Taskflow, please clone from Taskflow's GitHub.

# New Features

- enhanced the performance of the work-stealing algorithm

- enhanced the interface of concurrent CPU-GPU tasking (added tf::cudaFlow::zero, tf::cudaFlow::memset, tf::cudaFlow::memcpy, tf::cudaFlow::fill)

- enhanced unittests for tf::cudaFlow

- added per-thread stream to avoid synchronizing with the default stream in running a cudaFlow

- added tf::cudaFlow::repeat and tf::cudaFlow::predicate for iterative execution of a cudaFlow

- added Learning from Examples pages

- made observer a std::shared_ptr object

- enabled multiple observers to coexit in an executor

- created the TFProf project (image below) to provide visualization and tooling needed for Taskflow programs

# Bug Fixes

- fixed the bug in assigning the block pointer before constructor of an object in object pool

- fixed the namespace conflicting in using MPark.Variant from upstream code

# Miscellaneous Items

- fixed the warning between unsigned and size_t conversion in tf::Executor

- submitted the technical paper to arXiv