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 Xode 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

Taskflow Profiler (TFProf)

  • Disabled local TFProf support due to non-portable serialization

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

Deprecated and Removed Items

There are no deprecated items in this release.

Documentation

Miscellaneous Items

We have published Taskflow in the following venues:

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.