Release 3.5.0 (2023/01/05)
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 - 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::
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
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 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.