Ray
In-depth entryby Ray project (Anyscale and contributors) · Framework · also known as Ray Core, Ray Serve, Ray Data, Ray Train, Ray Tune, RLlib
Open-source Python framework for distributing tasks, actors and ML workloads across a cluster, with libraries for data processing, training, tuning, serving and reinforcement learning
Overview
Ray is an open-source distributed computing framework for Python, created at UC Berkeley's RISELab and now developed by Anyscale and a large contributor community under the Apache 2.0 license. Ray Core turns ordinary functions and classes into remote tasks and stateful actors with a decorator, schedules them across the cores and machines of a cluster, and passes results through a shared object store. On top of that sit domain libraries: Ray Data for parallel data loading and batch inference, Ray Train for distributed PyTorch or other training, Ray Tune for hyperparameter search, Ray Serve for deploying model endpoints, and RLlib for reinforcement learning.
A cluster is a head node plus workers started with the ray CLI, the built-in cluster launcher for AWS, GCP and Azure, or the KubeRay operator on Kubernetes; Anyscale sells a managed version. Ray runs on Linux (x86_64 and ARM) and on Apple Silicon Macs, with Windows support in beta. Recent releases enable token authentication by default for clusters.
Typical users are ML engineers scaling a training or inference pipeline past one machine, data teams running embarrassingly parallel Python jobs, and platform teams serving many models behind one API. On a cluster of Macs it is one of the few general-purpose options for fanning Python work out across nodes, although Ray documents multi-node Apple Silicon clusters as untested.
Limits: it is Python-centric (Java and C++ APIs are experimental), carries operational overhead compared with a job scheduler for simple batch jobs, and its object store and scheduler add complexity that only pays off beyond a single machine.
Capabilities
- Remote tasks and actors from plain Python functions and classes
- Distributed object store for passing results between workers
- Ray Data for parallel loading and batch inference
- Ray Train and Ray Tune for distributed training and hyperparameter search
- Ray Serve for scalable model-serving endpoints
- Cluster launchers for cloud providers and KubeRay for Kubernetes
- Dashboard for jobs, actors and resources
Typical workflows
- Parallelize a Python simulation across all cores and nodes
- Run batch LLM inference over a large dataset
- Serve several models behind one HTTP endpoint with autoscaling
- Launch a hyperparameter sweep on a cluster
Strengths
- One API from laptop to cluster
- Rich ML-specific libraries on a general core
- Apache 2.0 license and large community
- Managed option available through Anyscale
Limitations
- Python-centric; other language APIs are experimental
- Operational overhead for simple batch workloads
- Multi-node clusters on Apple Silicon and Windows are untested or beta
- Memory pressure from the object store needs tuning
Prerequisites
- Python 3.10 or newer
- Network access between nodes for a multi-machine cluster
Who it is for
- ML engineers scaling training and inference
- Data scientists parallelizing Python jobs
- Platform teams serving models
Alternatives & comparison
Dask is the closest relative: also Python-native and task-based, but centred on parallel DataFrame and array collections rather than actors and ML serving. Apache Spark is a JVM-based data-processing engine with a SQL/DataFrame focus; Ray targets general Python and ML workloads and the two are often combined. Slurm is a batch scheduler that allocates nodes to jobs without a programming model; Open MPI is a message-passing library for tightly coupled HPC codes. Ray sits between them as a runtime with its own scheduler and higher-level libraries.
- Apache Spark
Distributed data processing engine with DataFrame and SQL APIs in Python, Scala, Java and R, plus structured streaming and MLlib
Open sourceOpen source - Dask
Python library for parallel and distributed computing that scales pandas, NumPy and custom task graphs from a laptop to a cluster
Open sourceOpen source - GNU Parallel
Shell tool that runs commands in parallel over input lines on one or several machines, as a drop-in alternative to xargs and shell loops
Open sourceOpen source - Open MPI
Open-source implementation of the MPI message-passing standard used to run tightly coupled parallel programs across the nodes of a cluster
Open sourceOpen source - Slurm Workload Manager
Open-source cluster resource manager and job scheduler for Linux clusters, allocating nodes, launching jobs and managing queues on many HPC systems
Open sourceOpen source
Sources & verification
Primary sources consulted for this record. Claims are tied to the fields each source supports; the automated link checker re-verifies every URL on a schedule.
- Licensehttps://github.com/ray-project/ray/blob/master/LICENSEchecked Nov 1, 2026
Supports: license_spdx, source_model
- Official documentationchecked Nov 1, 2026
- Official documentationInstalling Raychecked Nov 1, 2026
https://docs.ray.io/en/latest/ray-overview/installation.html
Supports: operating_systems, prerequisites, limitations
- Official sitechecked Nov 1, 2026
- Confidence
- High
- Reviewed
- Nov 1, 2026
- Links
- Broken · Nov 2, 2026
Spotted an error?
More in Distributed & parallel computing
Kubernetes
Cloud Native Computing Foundation · Containers & virtualization
Open-source system for scheduling, scaling and operating containerized workloads across a cluster of machines
vLLM
vLLM project (originated at UC Berkeley Sky Computing Lab) · Local LLM inference & serving
High-throughput LLM inference and serving engine with PagedAttention, continuous batching, quantization and an OpenAI-compatible server for GPU and accelerator clusters
GNU Parallel
GNU Project (Ole Tange) · Distributed & parallel computing
Shell tool that runs commands in parallel over input lines on one or several machines, as a drop-in alternative to xargs and shell loops
exo
Exo Labs · Distributed & parallel computing
Open-source software that pools several Apple Silicon Macs (and Linux hosts) into one local inference cluster, sharding large models across devices with MLX