taskflow/taskflow

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

解決する課題

Taskflowは、タスク並列プログラムの作成を簡素化するために設計された高性能C++ライブラリです。並列に実行する必要があるタスク間の依存関係の管理という複雑さに対処し、効率的でスケーラブルな並列ソフトウェアを記述するために必要なコード量を削減します。

仕組み

Taskflowはヘッダーのみのフレームワークを提供し、開発者はタスクグラフ(tf::Taskflowオブジェクト)を定義して、エグゼキュータを使用して実行できます。precedeおよびsucceedメソッドを使用した明示的な依存関係を持つタスクの定義に加え、再帰的なタスク処理(サブフロー)、制御フローのための条件付きタスク処理、複数のタスクグラフをより大きなモジュールブロックに合成するといった、より複雑なパターンを可能にします。

対象者

CPUおよびGPU(Nvidia CUDA Graph統合経由)にわたる高度な並列化を必要とする、ハイパフォーマンスコンピューティング(HPC)および科学計算アプリケーションを記述する開発者を対象としています。

ハイライト

  • ヘッダーのみ: 既存のC++プロジェクトへのインストールと統合が容易です。
  • ヘテロジニアス・コンピューティング: Nvidia CUDA Graphを使用してタスクをGPUにオフロードすることをサポートしています。
  • 高度なタスク処理: 再帰的なサブフロー、条件付きタスク処理、および非同期タスク処理をサポートしています。
  • 組み込みプロファイラ: タスク実行を可視化およびプロファイリングするためのWebベースのインターフェースであるTFProfが含まれています。
  • 並列アルゴリズム: 標準的なC++構文を使用して、for_eachreducesortなどの一般的なパターンへの組み込みサポートを提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト