taskflow/taskflow

A General-purpose Task-parallel Programming System in C++

解决的问题

Taskflow 是一个高性能 C++ 库,旨在简化任务并行程序的创建。它解决了并行运行任务之间依赖关系管理的复杂性,减少了编写高效、可扩展并行软件所需的代码量。

工作原理

Taskflow 提供了一个仅头文件(header-only)的框架,开发人员可以在其中定义任务图(tf::Taskflow 对象)并使用执行器进行执行。它允许定义具有显式依赖关系的任务(使用 precedesucceed 方法),以及更复杂的模式,如递归任务(子流)、用于控制流的条件任务以及将多个任务图组合成更大的模块化块。

适用对象

面向编写高性能计算 (HPC) 和科学计算应用的开发人员,这些应用需要在 CPU 和 GPU(通过 Nvidia CUDA Graph 集成)之间进行复杂的并行化。

亮点

  • 仅头文件:易于安装并集成到现有的 C++ 项目中。
  • 异构计算:支持使用 Nvidia CUDA Graph 将任务卸载到 GPU。
  • 高级任务处理:支持递归子流、条件任务处理和异步任务处理。
  • 内置分析器:包含 TFProf,这是一个用于可视化和分析任务执行情况的 Web 界面。
  • 并行算法:使用标准 C++ 语法为 for_eachreducesort 等常见模式提供内置支持。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目