docs/release-3-9-0.html
This release improves scheduling performance with a decentralized work-stealing strategy and enhances exception handling across all task types.
Taskflow 3.9.0 can be downloaded from here.
To use Taskflow v3.9.0, you need a compiler that supports C++17:
Taskflow works on Linux, Windows, and Mac OS X.
improved the core scheduling algorithm using a decentralized work-stealing strategy
enhanced tf::Runtime to support preemptible execution flows
optimized task storage by storing detached tasks in their original subflows
optimized the query efficiency for strong dependencies by embedding their values in node states
updated tf::Graph to derive from a vector of unique pointers to nodes
expanded unit tests to include more exception handling scenarios
decoupled tf::Runtime from static task to accommodate distinct execution logic
removed the blocking behavior to avoid underutilized threads for the following tasks:
removed std::bind from asynchronous tasks to ensure proper constexpr switch
added compile-time macros to enable specific features
TF_ENABLE_TASK_POOL to enable the use of task pooladded taskflow execution through asynchronous tasking with tf::make_module_task
added tf::WorkerInterface for users to configure the behaviors of workers
added worker interface example and unit tests
tf::pause to relax CPU during busy spinning looptf::seed to generate a random seed based on calling time pointtf::atomic_min to update an atomic variable with the minimum valuetf::atomic_max to update an atomic variable with the maximum valueTF_CPP20 and TF_CPP17 macro for testing cpp versionsdecoupled tf::Subflow from inheriting tf::Runtime to accommodate distinct execution logic
removed tf::Runtime::corun_until as it duplicates tf::Executor::corun_until
removed tf::Runtime-based semaphore interface due to significant flaws of blocking corun (#647)
Please do not hesitate to contact Dr. Tsung-Wei Huang if you intend to collaborate with us on using Taskflow in your scientific computing projects.