docs/release-4-0-0.html
Happy new year! Starting in v4, Taskflow migrates the codebase to the C++20 standard for improved runtime performance and engineering efficiency. This release enhances scheduling efficiency through bulk scheduling, reduced atomic overhead, and a streamlined executor design.It also introduces new features such as tf::TaskGroup to better support recursive task parallelism, along with Taskflow Academy, a new video suite for learning Taskflow.
To download the newest version of Taskflow, please clone the master branch from Taskflow's GitHub.
To use Taskflow v4.0.0, you need a compiler that supports C++20:
replaced std::function in topology with virtual dispatch for better performance
replaced TF_LIKELY/_UNLIKELY with C++20 attributes
extended the work-stealing queue to support the following new features:
enhanced the executor performance with the following changes:
adopted tf::NonblockingNotifier as the default notifier due to its robustness
split essential members of tf::Node into tf::NodeBase to improve modularity
split anchor nodes to implicit and explicit types to improve exception handling
added unit test for tf::NonblockingNotifier
added embarrassing parallelism benchmark
added merge sort benchmark
added tf::TaskGroup to enable efficient implementation of recursive parallelism
revised the following benchmarks with tf::TaskGroup for recursive parallelism
enhanced the scheduling performance of dependent-async tasks with state merging
ctz as it is duplicate with the C++20 bit manipulation libraryauto function argument (#746)silent_async within corun (#748)Starting in v4, Taskflow will adopt the C++20 standard for better runtime performance and engineering efficiency. If your project does not support C++20, please use Taskflow v3.11.0, which can be downloaded here.
If you are interested in collaborating with us on applying Taskflow to your projects, please feel free to reach out to Dr. Tsung-Wei Huang!