Generated by GPT-5-mini| Ray (Anyscale) | |
|---|---|
| Name | Ray (Anyscale) |
| Developer | Anyscale |
| Initial release | 2017 |
| Programming language | Python, C++ |
| License | Apache License 2.0 |
| Website | Anyscale |
Ray (Anyscale)
Ray is an open-source distributed execution framework developed by Anyscale to simplify scalable computing for Python and C++ applications across clusters. It integrates with projects from Apache Spark and Dask ecosystems while interoperating with platforms such as Kubernetes, Amazon Web Services, Google Cloud Platform, Microsoft Azure to support machine learning and data processing workloads. Ray emphasizes actor-based concurrency and task-parallel programming influenced by research from UC Berkeley, MIT, Stanford University, and draws on concepts from MapReduce, Actor model, MPI, and Parameter Server paradigms.
Ray provides primitives for distributed task execution, actor concurrency, and resource-aware scheduling developed by Anyscale founders with ties to Berkeley RISELab, RMIT University, and research groups at University of California, Berkeley. The project positions itself among systems like Apache Flink, TensorFlow, PyTorch, Ray RLlib, and Horovod by offering APIs that integrate with scikit-learn, XGBoost, and LightGBM for production workloads. Ray's ecosystem includes libraries such as Ray Serve, Ray Tune, Ray RLib, and Ray Datasets that target applications in reinforcement learning, hyperparameter tuning, model serving, and data processing alongside orchestration tools like Kubernetes and cloud services including AWS Lambda.
Ray's architecture centers on a distributed control plane and data plane influenced by designs from Apache Arrow, gRPC, and ZeroMQ, combining a global control store, object store, and scheduler. Core components include the Raylet node manager, the Plasma object store originally from Apache Arrow research, the Global Control Store (GCS) coordinator, and language-specific workers for Python and C++. Auxiliary libraries such as Ray Tune for hyperparameter search, Ray Serve for model deployment, RLlib for reinforcement learning, and Ray Datasets for data ingestion extend the core alongside integrations with TensorFlow Serving, TorchServe, and inference frameworks like ONNX and TensorRT.
Ray exposes a task- and actor-based API modeled after the Actor model and influenced by systems like Akka, Erlang, and Celery to express parallelism via remote functions and stateful actors. The Python API uses decorators (e.g., @ray.remote) enabling interoperability with NumPy, Pandas, scikit-learn, and PyTorch while the C++ API allows low-latency components to interoperate with gRPC and FlatBuffers. Higher-level libraries present domain-specific APIs: RLlib provides reinforcement learning trainers compatible with OpenAI Gym and DeepMind Lab, Tune offers schedulers influenced by Population Based Training and HyperOpt, and Serve provides model serving semantics comparable to Kubernetes Ingress and NGINX deployments.
Ray is used for distributed model training in contexts involving PyTorch Lightning, TensorFlow, and JAX workloads, for hyperparameter optimization with Optuna and HyperOpt, for reinforcement learning with OpenAI Baselines, DeepMind research, and for serving inference pipelines with TensorFlow Serving and TorchServe. Other applications include large-scale simulation in domains linked to NASA, financial analytics used by firms interacting with Bloomberg datasets, genomics pipelines reminiscent of workflows at Broad Institute, and recommendation systems comparable to Netflix and Spotify deployments. Ray also supports ETL workloads similar to Apache Beam and Airflow DAGs when combined with orchestration tools like Argo Workflows and Kubernetes.
Ray's performance model relies on fine-grained task scheduling, zero-copy object sharing via Plasma (informed by Apache Arrow), and decentralized scheduling influenced by research from Mesos and Hadoop YARN. Benchmarks compare Ray against Dask, Apache Spark, and custom MPI implementations for latency-sensitive workloads such as reinforcement learning and online serving akin to NGINX reverse proxies. Scalability is achieved through autoscaling integrations with Kubernetes, AWS Auto Scaling, and cluster managers used by Google Kubernetes Engine and Azure Kubernetes Service, enabling thousands of tasks and actors across hundreds of nodes in production systems used by companies like Toyota Research Institute and Intel labs.
The Ray ecosystem includes commercial offerings from Anyscale and community contributions from organizations such as NVIDIA, Intel, Microsoft Research, and academic groups at UC Berkeley and MIT. Integrations exist with data platforms like Snowflake, orchestration like Airflow and Prefect, model registries comparable to MLflow and Seldon, and monitoring stacks using Prometheus and Grafana. The project hosts community forums and governance patterns akin to Apache Software Foundation projects, with adopters across startups and enterprises including research groups at Facebook AI Research, DeepMind, and engineering teams at Uber.
Ray began as research from the Berkeley RISELab with initial codebases influenced by distributed systems research from UC Berkeley, MIT CSAIL, and collaborations with industry partners such as Intel and NVIDIA. The core project was later commercialized by Anyscale founders and evolved through releases that added RLlib, Tune, and Serve while incorporating lessons from projects like Apache Spark, Dask, Horovod, and Ray's predecessor research. Over time the community grew with contributions from academic labs and enterprises, receiving attention alongside milestones similar to other open-source success stories like Kubernetes and TensorFlow.