For a resource allocation scheduler for distributed systems, the first results are volcano-sh/volcano (Volcano is a Kubernetes-native batch scheduler that provides priority queues, preemption, GPU scheduling for AI/ML workloads, hierarchical resource isolation, and policy-driven gang scheduling, matching all the required features for cluster resource scheduling), hashicorp/nomad (Nomad is a distributed workload orchestrator that directly schedules and allocates CPU, memory, and GPU resources across clusters, supporting priority queues, preemption, and policy-driven scheduling — making it a complete match for a cluster resource scheduler) and ray-project/ray. kubernetes/kubernetes and apache/mesos round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
We curate open-source GitHub repositories matching “resource allocation schedulers”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
Volcano is a Kubernetes-native batch scheduler specialized for AI, machine learning, and high-performance computing workloads. It provides gang scheduling to atomically allocate resources for all tasks of a distributed job, preventing deadlocks from partial allocation, and supports hierarchical queue management for multi-tenant resource isolation with configurable quotas, borrowing, and preemption. Topology-aware placement optimizes communication-intensive workloads by modeling network hierarchy to minimize cross-switch latency. Volcano differentiates itself with automated orchestration of di
Volcano is a Kubernetes-native batch scheduler that provides priority queues, preemption, GPU scheduling for AI/ML workloads, hierarchical resource isolation, and policy-driven gang scheduling, matching all the required features for cluster resource scheduling.
Nomad is a distributed workload orchestrator and infrastructure automation platform designed to manage the lifecycle of applications across large-scale, heterogeneous environments. It functions as a multi-cloud orchestration engine, providing a unified control plane to deploy, scale, and govern containers, virtual machines, and legacy applications. By utilizing declarative job specifications, the system ensures infrastructure convergence and maintains the desired state across distributed data centers and geographic regions. The platform distinguishes itself through a flexible, plugin-based ar
Nomad is a distributed workload orchestrator that directly schedules and allocates CPU, memory, and GPU resources across clusters, supporting priority queues, preemption, and policy-driven scheduling — making it a complete match for a cluster resource scheduler.
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 natively schedules tasks and manages CPU, memory, and GPU resources across clusters, making it a direct fit for a cluster resource scheduler with support for priority queues, GPU scheduling, scalability, and policy‑driven placement via its actor and task model.
Kubernetes is a distributed container orchestration platform that automates the deployment, scaling, and management of containerized applications across clusters of computing nodes. It functions as a declarative infrastructure controller, utilizing a control loop architecture that continuously monitors the current system state against user-defined configurations to ensure desired operational outcomes. The system relies on a centralized API-driven interface and a replicated key-value store to maintain a consistent source of truth for all cluster objects. The platform distinguishes itself throu
Kubernetes is a container orchestration platform whose built-in scheduler handles priority queues, GPU scheduling, preemption, and policy-driven resource allocation at scale, making it an excellent fit for this search.
Apache Mesos is a distributed systems kernel and cluster resource manager that abstracts CPU, memory, and storage across a pool of nodes. It functions as a distributed infrastructure orchestrator, providing a layer to run multiple orchestration frameworks on a shared set of physical or virtual machines. The system acts as a resource isolation engine, dividing a shared cluster into isolated containers to run diverse workloads concurrently. It enables multi-framework orchestration, allowing different distributed application frameworks to share a single infrastructure to maximize hardware utiliz
Apache Mesos is a proven cluster resource scheduler that abstracts CPU, memory, and GPUs across nodes, with two-level scheduling, offer-based allocation, and resource isolation — directly matching your need for an efficient cluster scheduler.
Marathon is an Apache Mesos container orchestrator and distributed workload manager. It serves as a framework for deploying and managing containerized applications and workloads across a distributed cluster. The system functions as a cluster resource scheduler that assigns applications to available resources using a centralized control plane. It distinguishes its orchestration through constraint-based instance placement, which restricts where containers are deployed based on node attributes or rack locations to ensure high availability. The platform provides capabilities for automated cluste
Marathon is a cluster scheduler that deploys and manages containers on top of Apache Mesos at scale, fitting the search for an open-source tool to allocate resources across jobs, though it relies on Mesos for core resource management and lacks built-in preemption and explicit priority queues.
DC/OS - The Datacenter Operating System
DC/OS is a full datacenter operating system that includes a cluster resource scheduler for deploying and managing jobs and containers, making it a genuine tool in this category despite its broader scope.
Kue is a Redis-backed job queue library for Node.js that provides a complete system for defining, scheduling, and processing background work. It stores job metadata and state in Redis lists and sorted sets, enabling persistent, in-memory operations with configurable concurrency control and priority-sorted processing. The library includes a RESTful HTTP API for managing jobs and a web-based monitoring dashboard for inspecting job status, progress, and logs. The system distinguishes itself through its event-driven worker model, where workers listen for job events via Redis pub/sub and process j
Kue is a Redis-backed job queue library for Node.js background tasks, not a cluster resource scheduler that allocates CPU, memory, or GPUs across jobs or containers.
.. image:: https://media.charlesleifer.com/blog/photos/huey3-logo.png
Huey is a lightweight task queue for Python that schedules background jobs, but it does not allocate cluster resources like CPU, memory, or GPUs across nodes, so it doesn't meet your need for a cluster resource scheduler.
Oban is a distributed background job processing system and task scheduler that uses PostgreSQL for transactional job storage and reliable execution across multiple nodes. It serves as a PostgreSQL-backed background worker and job queue, coordinating task execution and concurrency through a relational database to ensure delivery guarantees. The system differentiates itself through a distributed workflow orchestrator capable of managing multi-step processing pipelines, dependent job sequencing, and shared context. It provides advanced orchestration tools including job batching, chunked processi
Oban is a distributed background job processing system and task scheduler, not a cluster resource scheduler that allocates CPU, memory, or GPUs across containers or jobs in a cluster environment.
Bull is a Node.js library for managing distributed jobs and message queues using Redis as the primary data store. It functions as a distributed task worker, job scheduler, and priority queue manager designed to handle asynchronous workloads across multiple processes. The project distinguishes itself by providing a persistent communication channel that decouples servers through the exchange of serializable data objects. It ensures distributed system reliability by detecting stalled tasks and recovering from process crashes to ensure every queued job is completed. The system covers a broad ran
Bull is a Node.js job queue and scheduling library for managing asynchronous tasks, but it does not schedule or allocate CPU, memory, or GPU resources across cluster nodes, so it does not match the cluster resource scheduler category.
Trigger.dev is a platform for building durable, event-driven background workflows. It functions as a workflow engine that allows developers to define complex, long-running processes using standard code rather than proprietary configuration languages. By utilizing a durable execution model, the system checkpoints progress, ensuring that tasks can automatically resume from the exact point of failure after a crash or interruption. The platform distinguishes itself through its focus on stateful, multi-step automation and real-time feedback. It supports the orchestration of AI agents and external
Trigger.dev is a workflow engine for durable background jobs and AI agent orchestration, not a cluster-wide resource scheduler that allocates CPU, memory, or GPUs across nodes—it schedules tasks and automations, not compute resources in a cluster.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| volcano-sh/volcano | 5.3K | Go | apache-2.0 | |
| hashicorp/nomad | 16.2K | Go | other | |
| ray-project/ray |
| 42.9K |
| Python |
| Apache-2.0 |
| kubernetes/kubernetes | 123.2K | Go | Apache-2.0 |
| apache/mesos | 5.4K | C++ | Apache-2.0 |
| mesosphere/marathon | 4K | Scala | Apache-2.0 |
| dcos/dcos | 2.4K | Python | Apache-2.0 |
| automattic/kue | 9.4K | JavaScript | MIT |
| coleifer/huey | 5.9K | Python | mit |
| oban-bg/oban | 3.8K | Elixir | apache-2.0 |