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

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案