release-3-1-0 Release 3.1.0 (2021/04/14) Download release-3-1-0_1release-3-1-0_download System Requirements release-3-1-0_1release-3-1-0_system_requirements New Features release-3-1-0_1release-3-1-0_new_features Taskflow Core release-3-1-0_1release-3-1-0_taskflow_core cudaFlow release-3-1-0_1release-3-1-0_cudaflow Utilities release-3-1-0_1release-3-1-0_utilities Taskflow Profiler (TFProf) release-3-1-0_1release-3-1-0_profiler Bug Fixes release-3-1-0_1release-3-1-0_bug_fixes Breaking Changes release-3-1-0_1release-3-1-0_breaking_changes Deprecated and Removed Items release-3-1-0_1release-3-1-0_deprecated_items Documentation release-3-1-0_1release-3-1-0_documentation Miscellaneous Items release-3-1-0_1release-3-1-0_miscellaneous_items Taskflow 3.1.0 is the 2nd release in the 3.x line! This release includes several new changes such as CPU-GPU tasking, algorithm collection, enhanced web-based profiler, documentation, and unit tests. Download Taskflow 3.1.0 can be downloaded from here. System Requirements To use Taskflow v3.1.0, you need a compiler that supports C++17: GNU C++ Compiler at least v8.4 with -std=c++17 Clang C++ Compiler at least v6.0 with -std=c++17 Microsoft Visual Studio at least v19.27 with /std:c++17 AppleClang Xcode Version at least v12.0 with -std=c++17 Nvidia CUDA Toolkit and Compiler (nvcc) at least v11.1 with -std=c++17 Intel C++ Compiler at least v19.0.1 with -std=c++17 Intel DPC++ Clang Compiler at least v13.0.0 with -std=c++17 and SYCL20 Taskflow works on Linux, Windows, and Mac OS X. New Features Taskflow Core optimized task node storage by using std::unique_ptr for semaphores merged the execution flow of cudaFlow and cudaFlow capturer cudaFlow optimized tf::cudaRoundRobinCapturing through an event-pruning heuristic optimized the default block size used in cudaFlow algorithms added tf::cudaFlow::clear() to clean up a cudaFlow added tf::cudaFlow::num_tasks() to query the task count in a cudaFlow added tf::cudaTask::num_dependents() to query the dependent count in a cudaTask added tf::cudaFlowCapturer::clear() to clean up a cudaFlow capturer added tf::cudaFlowCapturer::num_tasks() to query the task count in a cudaFlow capturer added tf::cudaFlowCapturer rebind methods: tf::cudaFlowCapturer::rebind_single_task tf::cudaFlowCapturer::rebind_for_each tf::cudaFlowCapturer::rebind_for_each_index tf::cudaFlowCapturer::rebind_transform tf::cudaFlowCapturer::rebind_reduce tf::cudaFlowCapturer::rebind_uninitialized_reduce added tf::cudaFlow update methods: tf::cudaFlow::update_for_each tf::cudaFlow::update_for_each_index tf::cudaFlow::update_transform tf::cudaFlow::update_reduce tf::cudaFlow::update_uninitialized_reduce added cudaFlow examples: parallel reduction (examples/cuda/cuda_reduce.cu) parallel transform (examples/cuda/cuda_transform.cu) rebind (examples/cuda/cuda_rebind.cu) Utilities resolved the compiler warning in serializer caused by constexpr if resolved the compiler error of nvcc when parsin variadic namespace Taskflow Profiler (TFProf) No update for TFProf in this release. Bug Fixes fixed the macro expansion issue with MSVC on TF_CUDA_CHECK fixed the serializer compile error (#288) fixed the tf::cudaTask::type bug in mixing host and empty task types Breaking Changes There are no breaking changes in this release. Deprecated and Removed Items There are no deprecated or removed items in this release. Documentation added Query the Worker ID to the cookbook page Executor revised update methods in GPU Tasking (cudaFlow) revised rebind methods in GPU Tasking (cudaFlowCapturer) Miscellaneous Items removed Circle-CI from the continuous integration updated grok to the user list updated RavEngine to the user list updated RPGMPacker to the user list updated Leanify to the user list