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等常見模式提供內建支援。
相關
- 專案
- 專案
- 專案
- 專案
- 專案