taskflow/taskflow
A General-purpose Task-parallel Programming System in C++
解决的问题
Taskflow 是一个高性能 C++ 库,旨在简化任务并行程序的创建。它解决了并行运行任务之间依赖关系管理的复杂性,减少了编写高效、可扩展并行软件所需的代码量。
工作原理
Taskflow 提供了一个仅头文件(header-only)的框架,开发人员可以在其中定义任务图(tf::Taskflow 对象)并使用执行器进行执行。它允许定义具有显式依赖关系的任务(使用 precede 和 succeed 方法),以及更复杂的模式,如递归任务(子流)、用于控制流的条件任务以及将多个任务图组合成更大的模块化块。
适用对象
面向编写高性能计算 (HPC) 和科学计算应用的开发人员,这些应用需要在 CPU 和 GPU(通过 Nvidia CUDA Graph 集成)之间进行复杂的并行化。
亮点
- 仅头文件:易于安装并集成到现有的 C++ 项目中。
- 异构计算:支持使用 Nvidia CUDA Graph 将任务卸载到 GPU。
- 高级任务处理:支持递归子流、条件任务处理和异步任务处理。
- 内置分析器:包含 TFProf,这是一个用于可视化和分析任务执行情况的 Web 界面。
- 并行算法:使用标准 C++ 语法为
for_each、reduce和sort等常见模式提供内置支持。
相关
- 项目
- 项目
- 项目
- 项目
- 项目