Release Notes » Release 3.5.0 (2023/01/05) | Taskflow QuickStart

# Release Notes » 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
  - 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.

Tab / T to search, Esc to close
…

Search for symbols, directories, files, pages or modules. You can omit any prefix from the symbol or file path; adding a `:` or `/` suffix lists all members of given symbol or directory.

Use ↓ / ↑ to navigate through the list, Enter to go. Tab autocompletes common prefix, you can copy a link to the result using ⌘ L while ⌘ M produces a Markdown link.

Sorry, nothing was found.