docs/release-3-11-0.html
This release improves scheduling performance through optimized memory ordering in the notification algorithm and fixes a few bugs related to exception handling. We also revised multiple cookbook pages to enhance readability.
Taskflow 3.11.0 can be downloaded here.
To use Taskflow v3.11.0, you need a compiler that supports C++17:
Taskflow works on Linux, Windows, and Mac OS X.
added examples/task_visitor.cpp to demonstrate how to traverse a taskflow (#699)
added five benchmarks to showcase the capability of tf::Runtime
added methods to retrieve the exception pointer of a task
added methods to check if a task holds an exception pointer
added several new unit tests for exception handling (test_exception.cpp)
added dependent-async methods to tf::Runtime (#701)
removed code support for SYCL
removed thread_local to avoid incorrect references caused by Windows DLL boundaries
replaced TF_CACHELINE_SIZE with std::hardware_destructive_interference_size
enhanced the performance of atomic notifier via relaxed memory order
enforced implicit synchronization at the end of a runtime task's scope for safer usage
coprime functionfloor_log2 functiontf::corun(graph) due to a design flaw in its exception-handling behavior// previouslytaskflow.emplace([&](tf::Runtime& rt){rt.corun(graph);});// now - simply use tf::Executor::coruntaskflow.emplace([&](tf::Runtime& rt){executor.corun(graph);});
revised Static Tasking
revised Executor
revised Conditional Tasking
revised Runtime Tasking
revised Asynchronous Tasking
revised Exception Handling
revised Request Cancellation
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!