Repolode
taskflow

taskflow/taskflow

Biblioteca C++ de solo cabecera para crear programas paralelos mediante grafos de tareas, con soporte para multihilo en CPU y GPU CUDA.

Estrellas
12,210
Forks
1,417
Issues abiertos
39
Último commit
hace 10 días

¿Qué es?

Taskflow es una biblioteca C++ para expresar trabajo paralelo como grafos de dependencias entre tareas. Se crean tareas como lambdas, se declara cuáles deben ejecutarse antes que otras y se envía el grafo a un executor que lo distribuye entre los hilos de la CPU. La biblioteca es de solo cabecera, así que se incorpora a un proyecto incluyendo sus headers, sin necesidad de un paso independiente de compilación o instalación.

Además de los grafos estáticos, Taskflow admite subflows recursivos que generan grafos anidados en tiempo de ejecución, tareas condicionales que crean bucles y ramificaciones, y tareas asíncronas con dependencias dinámicas. También incluye algoritmos paralelos como for_each, reduce y sort, además de un componente para crear pipelines, y permite ejecutar kernels en GPU NVIDIA mediante tareas de CUDA Graph. El profiler complementario TFProf visualiza trazas de ejecución en una interfaz web cuando se establece la variable de entorno TF_ENABLE_PROFILER.

El proyecto requiere un compilador de C++20, como GCC 11+, Clang 12+, MSVC 2019 16.10+ o nvcc 12+, y funciona en Linux, Windows y macOS.

Funciones clave

  • 01Biblioteca de solo cabecera que no requiere instalación, más allá de incluir los headers.
  • 02Grafos estáticos de tareas con dependencias declaradas mediante precede y succeed.
  • 03Subflows recursivos, tareas condicionales para crear bucles y tareas asíncronas con dependencias dinámicas.
  • 04Algoritmos paralelos como for_each, reduce y sort, además de pipelines.
  • 05Compatibilidad con CUDA Graph para delegar trabajo a GPU NVIDIA.
  • 06Profiler integrado TFProf y exportación de grafos DOT para visualizarlos.

Casos de uso

  • Paralelizar cargas de trabajo en C++ mediante grafos de tareas con muchas dependencias en CPU multinúcleo.
  • Combinar trabajo en CPU y GPU CUDA en un mismo grafo planificado para computación científica.
  • Perfilar y visualizar la cronología de ejecución de un programa C++ multihilo.

Inicio rápido

  1. 1

    Escribe el programa de ejemplo simple.cpp siguiendo el README

  2. 2

    Clona el repositorio de Taskflow (solo una vez)

    git clone https://github.com/taskflow/taskflow.git
  3. 3

    Compila el programa indicando la ruta a las cabeceras de Taskflow

    g++ -std=c++20 simple.cpp -I taskflow/ -O2 -pthread -o simple
  4. 4

    Ejecuta el programa compilado

    ./simple

Antes de usarlo

  • Se necesita un compilador compatible con C++20, como GCC 11 o posterior, Clang 12 o posterior, o MSVC 2019 16.10 o posterior.
  • La ejecución de tareas en la GPU requiere NVIDIA CUDA Toolkit y su compilador (nvcc).

Temas

Preguntas frecuentes

¿Qué es taskflow?
Biblioteca C++ de solo cabecera para crear programas paralelos mediante grafos de tareas, con soporte para multihilo en CPU y GPU CUDA. Taskflow es una biblioteca C++ para expresar trabajo paralelo como grafos de dependencias entre tareas. Se crean tareas como lambdas, se declara cuáles deben ejecutarse antes que otras y se envía el grafo a un executor que lo distribuye entre los hilos de la CPU. La biblioteca es de solo cabecera, así que se incorpora a un proyecto incluyendo sus headers, sin necesidad de un paso independiente de compilación o instalación.
¿taskflow es gratuito? ¿Qué licencia tiene?
taskflow es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿taskflow sigue mantenido?
Mantenimiento activo. El último commit de taskflow fue el 15 oct 2026.
¿Para qué puedo usar taskflow?
Paralelizar cargas de trabajo en C++ mediante grafos de tareas con muchas dependencias en CPU multinúcleo. Combinar trabajo en CPU y GPU CUDA en un mismo grafo planificado para computación científica. Perfilar y visualizar la cronología de ejecución de un programa C++ multihilo.
¿Cómo se instala taskflow?
Escribe el programa de ejemplo simple.cpp siguiendo el README Clona el repositorio de Taskflow (solo una vez): git clone https://github.com/taskflow/taskflow.git Compila el programa indicando la ruta a las cabeceras de Taskflow: g++ -std=c++20 simple.cpp -I taskflow/ -O2 -pthread -o simple Ejecuta el programa compilado: ./simple
¿Dónde consigo taskflow?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/taskflow/taskflow

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados