For parallel execution frameworks, the strongest matches are airbnb/airflow (Airflow is a workflow orchestration and parallel execution framework), nathanmarz/storm (Storm is a distributed stream processing framework that executes) and ray-project/ray (Ray is a distributed computing framework that provides task). dask/dask and xuxueli/xxl-job round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Hand-picked parallel execution frameworks ranked by GitHub stars and activity. Compare the top alternatives and pick the right one.
Airflow is a workflow orchestration platform for authoring, scheduling, and monitoring complex data pipelines as code using Python. It employs a DAG-based task scheduler to manage execution timing and dependencies via directed acyclic graphs, utilizing a distributed task execution engine to run workloads across a cluster of worker nodes. The platform provides a data pipeline monitor for tracking the health and execution history of programmatic workflows. This includes a web interface for workflow progress visualization and health monitoring to identify and troubleshoot pipeline failures. The
Airflow is a workflow orchestration and parallel execution framework that uses directed acyclic graphs for task scheduling, distributed task queues for cluster-wide workload distribution, and robust execution engines to manage complex multi-node pipelines.
Storm is a distributed stream processing framework and fault-tolerant compute engine designed for executing real-time continuous computations across a cluster of machines. It functions as a stateful stream processor and cluster topology manager, enabling the deployment and monitoring of distributed data flow configurations. The system ensures exactly-once semantics by utilizing transactional state management to guarantee that every message in a data stream is processed exactly one time. It further operates as a distributed RPC system, allowing for the integration of non-native languages throu
Storm is a distributed stream processing framework that executes computations concurrently across a cluster with support for task graph scheduling, fault tolerance, and multi-node scaling.
Ray is a distributed computing framework designed to scale Python and Java applications across clusters by abstracting task scheduling and resource management. It functions as a resource-aware execution engine that manages task dependencies, placement, and fault tolerance across networked compute nodes. At its core, the system provides a stateful actor model, allowing developers to define classes that run in dedicated processes to maintain and mutate internal state across remote method calls. The framework distinguishes itself through a robust cross-language interoperability layer, enabling f
Ray is a distributed computing framework that provides task graph scheduling, multi-core scaling, fault tolerance, and load balancing for executing computations across clusters and multi-node environments.
Dask is a parallel computing framework and distributed task scheduler designed to scale Python data science workflows from single machines to large clusters. It functions as a cluster resource manager that orchestrates computational logic by representing tasks and their dependencies as directed acyclic graphs. This architecture allows the system to automate the distribution of workloads across available hardware while managing complex execution requirements. The project distinguishes itself through a lazy evaluation engine that defers data operations until they are explicitly requested, enabl
Dask is a parallel computing and task scheduling framework for Python that scales data workflows from multi-core machines to distributed clusters using directed acyclic graphs.
xxl-job is a distributed task scheduling platform and job orchestrator designed to manage and trigger timed jobs across a cluster of remote executor nodes. It provides a centralized system for scheduling tasks, linking dependent jobs, and managing complex execution lifecycles through a relational database that persists configurations and logs. The platform distinguishes itself through a web-based interface for cron job management, allowing users to create and update scheduled tasks without modifying source code. It supports cross-language task execution by triggering logic on third-party exec
Xxl-job is a distributed job scheduler and task orchestrator that coordinates timed jobs across remote nodes, fitting the domain of concurrent execution frameworks though more focused on cron scheduling than general task graph computation.
Apache Spark is a unified distributed data processing engine designed for large-scale data analysis and computation graphs. It functions as a distributed machine learning framework, a graph processing system, a real-time stream processor, and a SQL analytics engine. The system enables the execution of distributed SQL querying, large-scale graph analysis, and real-time stream analytics across clusters of machines. It also provides a scalable environment for implementing machine learning algorithms and predictive model development on massive datasets. The engine incorporates relational query e
Apache Spark is a distributed computing engine that handles large-scale data analysis, task graph scheduling, and stream processing across clusters, directly matching the requirements for a parallel execution framework.
Apache Flink is a distributed processing engine designed for both high-throughput, low-latency data streams and finite batch workloads. It functions as a stateful stream processor and a SQL stream processing engine, providing a unified runtime to execute relational queries and event-based transformations. The system is distinguished by its ability to manage persistent operator state to ensure exactly-once processing guarantees and consistency during failures. It features specialized capabilities for complex event processing to detect temporal patterns and handles out-of-order events using eve
Apache Flink is a distributed streaming and batch processing engine that provides task graph scheduling, pipeline execution, and fault-tolerant multi-node computation, which directly aligns with your need for a parallel execution framework.
Apache Beam is a distributed data pipeline framework and unified data processing model designed to handle both bounded batch data and unbounded real-time streams. It provides a system for building scalable, data-parallel workflows that operate across compute clusters using a single programming model. The framework utilizes a cross-runner pipeline abstraction that decouples the data processing logic from the underlying execution backend, allowing the same pipeline to run on different distributed compute engines. It supports multi-language pipeline development by translating high-level code fro
Apache Beam is a distributed data processing and pipeline framework designed for concurrent execution across compute clusters, featuring task graph scheduling, fault tolerance, and multi-core scaling.
Storm is a distributed stream processing framework designed to execute unbounded computations across a cluster to process real-time data streams. It functions as a data pipeline orchestrator that allows users to define and deploy declarative data flow graphs connecting streaming sources to processing components. The system operates as a multi-tenant distributed compute engine that isolates workloads and limits resource usage across shared clusters using dedicated pools and access control. It is also a secure distributed processing engine that employs encrypted node communication and SSL-secur
Apache Storm is a distributed stream processing and parallel computation framework featuring directed acyclic graph pipelines, task scheduling, and multi-node cluster scaling to execute unbounded real-time workloads.
Apache Heron (Incubating) is a realtime, distributed, fault-tolerant stream processing engine from Twitter
Apache Heron is a distributed stream processing engine designed for real-time computations with task graph scheduling, fault tolerance, and multi-node execution, which directly matches your search for a parallel execution framework.
Azkaban is a distributed workflow manager and DAG-based job orchestrator designed as an enterprise batch processor. It serves as a Java-based workflow engine that schedules and executes complex job sequences across a cluster of executor servers, with specific functionality for managing big data workloads on Hadoop clusters. The system distinguishes itself through a distributed executor model that coordinates state via a shared database to ensure high availability. It employs a plugin-based architecture that allows for custom job types and system functionality extensions, including the ability
Azkaban is a distributed workflow manager and DAG-based job orchestrator that supports multi-node execution and task dependency management, though it is oriented toward batch processing and Hadoop workflows rather than general-purpose concurrent computation.
Bend is a high-level parallel programming language and compiler designed to execute code across multi-core CPUs and GPUs automatically. By translating functional source code into a graph-based intermediate representation, it enables massive parallel execution without requiring manual management of threads, locks, or atomic operations. The runtime operates as an interaction net engine, where computations are represented as networks of nodes that reduce through local rewriting rules. This model utilizes a work-stealing scheduler to distribute tasks across thousands of hardware threads, ensuring
Bend is a parallel programming language and runtime that automatically executes code across multi-core CPUs and GPUs using a graph-based concurrency model, fitting the category well despite lacking explicit distributed computing across multiple nodes.
Light Task Scheduler is a distributed job scheduling and workflow orchestration platform designed for managing background processing across scalable computing environments. It functions as a cluster management system that coordinates stateless nodes to execute recurring, cron-based, or one-time tasks with centralized control and high availability. The platform distinguishes itself through a leader-based coordination model that automatically elects a primary controller to manage task distribution and system state. It supports complex workflow dependencies, ensuring that prerequisite tasks comp
Light Task Scheduler is a distributed job scheduling platform that handles workflow orchestration across clusters, though it focuses more on job scheduling and coordination rather than low-level multi-core compute pipelines.
Rayon is a data parallelism library for Rust that provides a framework for converting sequential computations into parallel operations. It enables the transformation of standard data structures and loops into parallel iterators, allowing workloads to be distributed across multiple processor cores. By utilizing a work-stealing scheduler, the library dynamically balances tasks to maximize throughput and minimize execution time. The library distinguishes itself through its focus on safe, scoped task synchronization, which ensures that all spawned operations complete before a scope exits to preve
Rayon is a data parallelism framework for Rust that executes computations concurrently across multi-core systems using a work-stealing scheduler, though it focuses on shared-memory concurrency rather than distributed node computing.
Conductor is a durable workflow engine designed to orchestrate complex, long-running business processes and autonomous agent loops. It functions as a stateful execution platform that persists the entire history of a process, ensuring that workflows remain reliable and recoverable across infrastructure failures, system restarts, and transient network errors. By managing task lifecycles, worker polling, and state transitions, it provides a centralized coordination layer for distributed systems. The platform distinguishes itself through its specialized support for AI agent orchestration, allowin
Conductor is a distributed workflow orchestration engine that manages task lifecycles and durable execution across systems, though it focuses on business processes and agent loops rather than low-level computational pipelines.
Luigi is a Python framework designed for building and managing complex batch data pipelines. It functions as a workflow orchestration engine that organizes tasks into directed acyclic graphs, ensuring that jobs execute in the correct logical order based on their dependencies. By utilizing a centralized scheduler, the system coordinates task execution across distributed environments, tracks global workflow state, and prevents redundant processing by verifying the existence of output targets before triggering any work. The project distinguishes itself through a robust state-tracking mechanism t
Luigi is a Python-based data pipeline and workflow orchestration framework that organizes tasks into directed acyclic graphs for distributed execution, though it focuses more on batch workflow management than low-level concurrent computing.
Hazelcast is a distributed data platform that combines an in-memory data grid with a stream processing engine to support real-time analytics and event-driven applications. It functions as a partitioned, distributed key-value store that replicates data across cluster nodes to provide low-latency access and high availability. The platform also serves as a distributed SQL query engine, allowing users to execute standard SQL statements against both in-memory datasets and external data sources. What distinguishes Hazelcast is its use of a distributed consensus subsystem to maintain strongly consis
Hazelcast is a distributed in-memory data platform and stream processing engine that handles distributed computing and multi-core scaling, though it is more focused on data storage and stream processing than general task graph scheduling.
Celery is an asynchronous job processor and distributed task queue designed to offload time-consuming operations to background worker nodes. By utilizing a message-passing architecture, it decouples task producers from consumers, allowing applications to maintain responsiveness while scaling workloads across multiple isolated environments. The system functions as a distributed workload orchestrator that manages the lifecycle of deferred operations through persistent queues. It distinguishes itself by providing a pluggable transport abstraction, which allows the core task logic to remain indep
Celery is a distributed task queue and asynchronous job processor that handles background workloads across multiple worker nodes, making it a strong fit for concurrent task execution despite leaning more toward message-passing queues than general data-computation pipelines.
DeepSpeed is a high-performance library designed to scale deep learning model training and inference across massive clusters of GPUs and compute nodes. It provides a comprehensive suite of tools for distributed training, enabling the execution of models that exceed the memory capacity of single devices through advanced parameter partitioning, pipeline-based model parallelism, and memory-efficient state offloading. The framework distinguishes itself through specialized communication-efficient optimizers and hardware-aware acceleration techniques. By utilizing gradient compression, quantization
DeepSpeed is a specialized deep learning framework that scales model training and inference across distributed GPU clusters, offering pipeline parallelism and multi-node compute distribution, though it is tailored specifically for neural networks rather than general-purpose task graphs.
Taichi is a domain-specific programming language embedded in Python designed for high-performance numerical computing and computer graphics. It functions as a parallel compiler that translates high-level mathematical expressions into optimized machine instructions, enabling developers to write compute-intensive algorithms that execute across diverse hardware architectures, including CPUs, GPUs, and specialized accelerators. The project distinguishes itself through a hardware-agnostic execution layer that maps parallel operations to multiple backends such as CUDA, Metal, and Vulkan. By utilizi
Taichi is a parallel programming framework focused on high-performance numerical computing and graphics that compiles Python code for execution across multi-core CPUs and GPUs, matching the core intent despite lacking distributed node-level orchestration.
Mirror of Apache Samza
Apache Samza is a distributed stream processing framework that supports multi-core scaling, pipelined execution, and distributed computing across nodes, though it focuses more on streaming than general-purpose task graph scheduling.
Parallel.js is a JavaScript library for running computational tasks concurrently across background worker threads and multi-core environments in browsers and Node. It wraps web worker management into a framework that offloads heavy computations without blocking the main event loop. The library initializes parallel jobs by wrapping serializable data in memory and configuring worker threads, execution timeouts, and synchronous fallback behavior. It supports mapping functions across datasets and reducing dataset values to scalar results by distributing work across separate threads. Operations ex
Parallel.js provides easy multi-core processing utilities for Node using worker threads, though it focuses on JavaScript concurrency rather than full distributed computing or task graph scheduling.
Prefect is a workflow orchestration platform designed to define, schedule, and monitor complex data pipelines as Python code. It functions as a container-native engine that wraps individual tasks in isolated environments, ensuring consistent dependencies and resource allocation across diverse infrastructure. By utilizing a state-machine-based orchestration model, the system tracks execution progress through discrete transitions and persistent event logs to maintain reliable and observable task processing. The platform distinguishes itself through a decoupled worker-API architecture, which sep
Prefect is a workflow orchestration and pipeline execution platform that handles task scheduling and monitoring as Python code, though it focuses more on workflow orchestration than raw distributed computing.
Parallel is a Ruby library and multi-process execution framework designed to accelerate CPU-intensive operations. It functions as a parallel job orchestrator and concurrent task runner that enables the execution of code across multiple processes or threads. The project distinguishes itself through secure inter-process communication, utilizing signed data serialization to prevent the injection of forged payloads between parent and child processes. It further differentiates its worker management by assigning unique identifiers to individual processes to prevent collisions when accessing shared
This Ruby library provides multi-process execution and concurrent task running to accelerate CPU-intensive operations, making it a fitting tool for parallel execution despite lacking distributed node scaling.
| Dépôt | Stars | Langage | Licence | Dernier push |
|---|---|---|---|---|
| airbnb/airflow | 45.9K | Python | Apache-2.0 | |
| nathanmarz/storm | 8.8K | Java | Apache-2.0 | |
| ray-project/ray | 42.9K | Python | Apache-2.0 | |
| dask/dask | 13.7K | Python | bsd-3-clause | |
| xuxueli/xxl-job | 30.3K | Java | GPL-3.0 | |
| apache/spark | 43.5K | Scala | Apache-2.0 | |
| apache/flink | 26.1K | Java | Apache-2.0 | |
| apache/beam | 8.6K | Java | Apache-2.0 | |
| apache/storm | 6.7K | Java | Apache-2.0 | |
| twitter/heron | 3.6K | Java | Apache-2.0 |