release-3-5-0 Release 3.5.0 (2023/01/05) Download release-3-5-0_1release-3-5-0_download System Requirements release-3-5-0_1release-3-5-0_system_requirements Release Summary release-3-5-0_1release-3-5-0_summary New Features release-3-5-0_1release-3-5-0_new_features Taskflow Core release-3-5-0_1release-3-5-0_taskflow_core cudaFlow release-3-5-0_1release-3-5-0_cudaflow Utilities release-3-5-0_1release-3-5-0_utilities Taskflow Profiler (TFProf) release-3-5-0_1release-3-5-0_profiler Bug Fixes release-3-5-0_1release-3-5-0_bug_fixes Breaking Changes release-3-5-0_1release-3-5-0_breaking_changes Deprecated and Removed Items release-3-5-0_1release-3-5-0_deprecated_items Documentation release-3-5-0_1release-3-5-0_documentation Miscellaneous Items release-3-5-0_1release-3-5-0_miscellaneous_items Taskflow 3.5.0 is the 6th release in the 3.x line! This release includes several new changes, such as pipeline parallelism, improved work-stealing performance, profiling, documentation, examples, and unit tests. Download Taskflow 3.5.0 can be downloaded from here. System Requirements To use Taskflow v3.5.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. Release Summary This release introduces a new data-parallel pipeline programming model, solves the busy-waiting problem in our work-stealing scheduler, and adds a new text-based feature for profiler report. New Features Taskflow Core Added tf::WorkerInterface to allow changing properties of workers upon their creations Added tf::Executor::loop_until to allow looping a worker with a custom stop predicate Added tf::DataPipeline to implement data-parallel algorithms See Data-parallel Pipeline Extended tf::Executor to include tf::WorkerInterface Improved parallel algorithms (e.g., tf::Taskflow::for_each) with tail optimization Resolved the busy-waiting problem in our work-stealing algorithm (#400) cudaFlow This release has no update on tf::cudaFlow. Utilities Added tf::unroll to unroll loops using template techniques Added tf::CachelineAligned to create a cacheline-aligned object Replaced std::aligned_union (deprecated in C++23) with a custom byte type (#445) Taskflow Profiler (TFProf) Added a new feature to generate a profile summary report See Display Profile Summary Bug Fixes Fixed the compilation error in taking move-only types for tf::Taskflow::transform_reduce Fixed the compilation error in the graph pipeline benchmark Fixed the compilation error in unknown OS (replaced with TF_OS_UNKNOWN) If you encounter any potential bugs, please submit an issue at issue tracker. Breaking Changes This release has no breaking changes. Deprecated and Removed Items This release has no deprecated and removed items. Documentation Revised Executor Added Execute a Taskflow from an Internal Worker Added Data-parallel Pipeline Miscellaneous Items We have published Taskflow in the following venues: Tsung-Wei Huang and Leslie Hwang, "Task-Parallel Programming with Constrained Parallelism," IEEE High-Performance Extreme Computing Conference (HPEC), MA, 2022 Tsung-Wei Huang, "Enhancing the Performance Portability of Heterogeneous Circuit Analysis Programs," IEEE High-Performance Extreme Computing Conference (HPEC), MA, 2022 Dian-Lun Lin, Haoxing Ren, Yanqing Zhang, and Tsung-Wei Huang, "From RTL to CUDA: A GPU Acceleration Flow for RTL Simulation with Batch Stimulus," ACM International Conference on Parallel Processing (ICPP), Bordeaux, France, 2022 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.