Release Notes » Release 3.4.0 (2022/05/23) | Taskflow QuickStart

# Release Notes » Release 3.4.0 (2022/05/23)

Taskflow 3.4.0 is the 5th release in the 3.x line! This release includes several new changes, such as pipeline parallelism, deadlock-free execution methods, documentation, examples, and unit tests.

## Download

Taskflow 3.4.0 can be downloaded from here.

## System Requirements

To use Taskflow v3.4.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 enhances our task-parallel pipeline programming model and executor methods, supplied with several new examples and unit tests.

## New Features

### Taskflow Core

- Improved the pipeline performance using vertical stack optimization
- Added tf::ScalablePipeline to allow programming variable lengths of pipes
- Added tf::Runtime::run_and_wait to allow spawning a subflow
- Added tf::Executor::run_and_wait to allow running taskflows from a worker
- Added an example of attaching data to a task (examples/attach_data.cpp)
- Added an example of text processing pipeline (examples/parallel_text_pipeline.cpp)
- Added an example of graph processing pipeline (examples/parallel_graph_pipeline.cpp)
- Added an example of taskflow processing pipeline (examples/parallel_taskflow_pipeline.cpp)
- Added an example of running a task graph from a worker (examples/run_and_wait.cpp)

### cudaFlow

- Added tf::cudaStream as a move-only, RAII-styled wrapper over a native CUDA stream
- Added tf::cudaEvent as a move-only, RAII-styled wrapper over a native CUDA event

### syclFlow

There is no update on syclFlow in this release.

### Utilities

- Removed serializer to improve compilation speed

## Bug Fixes

- Fixed the compilation error due to non-portable include of `immintrin.h` (#371)
- Fixed the compilation error due to using old version of doctest (#372)
- Fixed the infinite loop bug due to unexpected share states in pipeline (#402)

If you encounter any potential bugs, please submit an issue at issue tracker.

## Breaking Changes

- Replaced tf::Runtime::run with tf::Runtime::run_and_wait to comply with tf::Executor::run_and_wait

## Deprecated and Removed Items

There are no deprecated items in this release.

## Documentation

- Revised Executor
  - Added Execute a Taskflow from an Internal Worker
- Revised Execution Policy
- Revised Task-parallel Pipeline
  - Added Learn More about Taskflow Pipeline
- Revised Learning from Examples
  - Added Text Processing Pipeline
  - Added Graph Processing Pipeline
  - Added Taskflow Processing Pipeline
- Added Task-parallel Scalable Pipeline

## Miscellaneous Items

We have published Taskflow in the following venues:

- Dian-Lun Lin and Tsung-Wei Huang, "Accelerating Large Sparse Neural Network Inference using GPU Task Graph Parallelism," IEEE Transactions on Parallel and Distributed Systems (TPDS), 2022
- Cheng-Hsiang Chiu and Tsung-Wei Huang, "Composing Pipeline Parallelism using Control Taskflow Graph," ACM International Symposium on High-Performance Parallel and Distributed Computing (HPDC), Minneapolis, Minnesota, 2022
- Cheng-Hsiang Chiu and Tsung-Wei Huang, "Efficient Timing Propagation with Simultaneous Structural and Pipeline Parallelisms," ACM/IEEE Design Automation Conference (DAC), San Francisco, CA, 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.