Skip to main content

Ray provides a simple, universal API for building distributed applications.

Reason this release was yanked:

https://github.com/ray-project/ray/issues/19813

Project description

https://github.com/ray-project/ray/raw/master/doc/source/images/ray_header_logo.png https://readthedocs.org/projects/ray/badge/?version=master https://img.shields.io/badge/Ray-Join%20Slack-blue https://img.shields.io/badge/Discuss-Ask%20Questions-blue https://img.shields.io/twitter/follow/raydistributed.svg?style=social&logo=twitter

Ray provides a simple, universal API for building distributed applications.

Ray is packaged with the following libraries for accelerating machine learning workloads:

  • Tune: Scalable Hyperparameter Tuning

  • RLlib: Scalable Reinforcement Learning

  • RaySGD: Distributed Training Wrappers

  • Datasets: Flexible Distributed Data Loading (alpha)

As well as libraries for taking ML and distributed apps to production:

  • Serve: Scalable and Programmable Serving

  • Workflows: Fast, Durable Application Flows (alpha)

There are also many community integrations with Ray, including Dask, MARS, Modin, Horovod, Hugging Face, Scikit-learn, and others. Check out the full list of Ray distributed libraries here.

Install Ray with: pip install ray. For nightly wheels, see the Installation page.

Quick Start

Execute Python functions in parallel.

import ray
ray.init()

@ray.remote
def f(x):
    return x * x

futures = [f.remote(i) for i in range(4)]
print(ray.get(futures))

To use Ray’s actor model:

import ray
ray.init()

@ray.remote
class Counter(object):
    def __init__(self):
        self.n = 0

    def increment(self):
        self.n += 1

    def read(self):
        return self.n

counters = [Counter.remote() for i in range(4)]
[c.increment.remote() for c in counters]
futures = [c.read.remote() for c in counters]
print(ray.get(futures))

Ray programs can run on a single machine, and can also seamlessly scale to large clusters. To execute the above Ray script in the cloud, just download this configuration file, and run:

ray submit [CLUSTER.YAML] example.py --start

Read more about launching clusters.

Tune Quick Start

https://github.com/ray-project/ray/raw/master/doc/source/images/tune-wide.png

Tune is a library for hyperparameter tuning at any scale.

To run this example, you will need to install the following:

$ pip install "ray[tune]"

This example runs a parallel grid search to optimize an example objective function.

from ray import tune


def objective(step, alpha, beta):
    return (0.1 + alpha * step / 100)**(-1) + beta * 0.1


def training_function(config):
    # Hyperparameters
    alpha, beta = config["alpha"], config["beta"]
    for step in range(10):
        # Iterative training function - can be any arbitrary training procedure.
        intermediate_score = objective(step, alpha, beta)
        # Feed the score back back to Tune.
        tune.report(mean_loss=intermediate_score)


analysis = tune.run(
    training_function,
    config={
        "alpha": tune.grid_search([0.001, 0.01, 0.1]),
        "beta": tune.choice([1, 2, 3])
    })

print("Best config: ", analysis.get_best_config(metric="mean_loss", mode="min"))

# Get a dataframe for analyzing trial results.
df = analysis.results_df

If TensorBoard is installed, automatically visualize all trial results:

tensorboard --logdir ~/ray_results

RLlib Quick Start

https://github.com/ray-project/ray/raw/master/doc/source/images/rllib-wide.jpg

RLlib is an open-source library for reinforcement learning built on top of Ray that offers both high scalability and a unified API for a variety of applications.

pip install tensorflow  # or tensorflow-gpu
pip install "ray[rllib]"
import gym
from gym.spaces import Discrete, Box
from ray import tune

class SimpleCorridor(gym.Env):
    def __init__(self, config):
        self.end_pos = config["corridor_length"]
        self.cur_pos = 0
        self.action_space = Discrete(2)
        self.observation_space = Box(0.0, self.end_pos, shape=(1, ))

    def reset(self):
        self.cur_pos = 0
        return [self.cur_pos]

    def step(self, action):
        if action == 0 and self.cur_pos > 0:
            self.cur_pos -= 1
        elif action == 1:
            self.cur_pos += 1
        done = self.cur_pos >= self.end_pos
        return [self.cur_pos], 1 if done else 0, done, {}

tune.run(
    "PPO",
    config={
        "env": SimpleCorridor,
        "num_workers": 4,
        "env_config": {"corridor_length": 5}})

Ray Serve Quick Start

https://raw.githubusercontent.com/ray-project/ray/master/doc/source/serve/logo.svg

Ray Serve is a scalable model-serving library built on Ray. It is:

  • Framework Agnostic: Use the same toolkit to serve everything from deep learning models built with frameworks like PyTorch or Tensorflow & Keras to Scikit-Learn models or arbitrary business logic.

  • Python First: Configure your model serving declaratively in pure Python, without needing YAMLs or JSON configs.

  • Performance Oriented: Turn on batching, pipelining, and GPU acceleration to increase the throughput of your model.

  • Composition Native: Allow you to create “model pipelines” by composing multiple models together to drive a single prediction.

  • Horizontally Scalable: Serve can linearly scale as you add more machines. Enable your ML-powered service to handle growing traffic.

To run this example, you will need to install the following:

$ pip install scikit-learn
$ pip install "ray[serve]"

This example runs serves a scikit-learn gradient boosting classifier.

import pickle
import requests

from sklearn.datasets import load_iris
from sklearn.ensemble import GradientBoostingClassifier

from ray import serve

serve.start()

# Train model.
iris_dataset = load_iris()
model = GradientBoostingClassifier()
model.fit(iris_dataset["data"], iris_dataset["target"])

@serve.deployment(route_prefix="/iris")
class BoostingModel:
    def __init__(self, model):
        self.model = model
        self.label_list = iris_dataset["target_names"].tolist()

    async def __call__(self, request):
        payload = await request.json()["vector"]
        print(f"Received flask request with data {payload}")

        prediction = self.model.predict([payload])[0]
        human_name = self.label_list[prediction]
        return {"result": human_name}


# Deploy model.
BoostingModel.deploy(model)

# Query it!
sample_request_input = {"vector": [1.2, 1.0, 1.1, 0.9]}
response = requests.get("http://localhost:8000/iris", json=sample_request_input)
print(response.text)
# Result:
# {
#  "result": "versicolor"
# }

More Information

Older documents:

Getting Involved

  • Forum: For discussions about development, questions about usage, and feature requests.

  • GitHub Issues: For reporting bugs.

  • Twitter: Follow updates on Twitter.

  • Slack: Join our Slack channel.

  • Meetup Group: Join our meetup group.

  • StackOverflow: For questions about how to use Ray.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ray-1.7.1-cp39-cp39-win_amd64.whl (18.0 MB view details)

Uploaded CPython 3.9Windows x86-64

ray-1.7.1-cp39-cp39-manylinux2014_x86_64.whl (53.7 MB view details)

Uploaded CPython 3.9

ray-1.7.1-cp39-cp39-macosx_10_15_x86_64.whl (54.7 MB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

ray-1.7.1-cp38-cp38-win_amd64.whl (18.0 MB view details)

Uploaded CPython 3.8Windows x86-64

ray-1.7.1-cp38-cp38-manylinux2014_x86_64.whl (53.7 MB view details)

Uploaded CPython 3.8

ray-1.7.1-cp38-cp38-macosx_10_15_x86_64.whl (54.7 MB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

ray-1.7.1-cp37-cp37m-win_amd64.whl (18.1 MB view details)

Uploaded CPython 3.7mWindows x86-64

ray-1.7.1-cp37-cp37m-manylinux2014_x86_64.whl (54.0 MB view details)

Uploaded CPython 3.7m

ray-1.7.1-cp37-cp37m-macosx_10_15_intel.whl (54.9 MB view details)

Uploaded CPython 3.7mmacOS 10.15+ Intel (x86-64, i386)

ray-1.7.1-cp36-cp36m-win_amd64.whl (18.1 MB view details)

Uploaded CPython 3.6mWindows x86-64

ray-1.7.1-cp36-cp36m-manylinux2014_x86_64.whl (54.0 MB view details)

Uploaded CPython 3.6m

ray-1.7.1-cp36-cp36m-macosx_10_15_intel.whl (54.9 MB view details)

Uploaded CPython 3.6mmacOS 10.15+ Intel (x86-64, i386)

File details

Details for the file ray-1.7.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: ray-1.7.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 18.0 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.6.9

File hashes

Hashes for ray-1.7.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 59b2dffc26e46f6377b2bac8824f752748a1ef1f03eb646ec01ac07a6cac9a64
MD5 7528f1c1dd023f0690bad1eab9e6aafd
BLAKE2b-256 3a09d5a7bbc689483ccfd7a906629b54e2722a8ce091bff034ea61a8eb02cea3

See more details on using hashes here.

File details

Details for the file ray-1.7.1-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

  • Download URL: ray-1.7.1-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 53.7 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.6.9

File hashes

Hashes for ray-1.7.1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6c5ddde972f14081149955c27b9e0d447984462b9e0d550604ffdecf01041015
MD5 1463c1624929aaa7c0901d28bdc519d8
BLAKE2b-256 85e0975cafa43108f96af81403842f6f6120ea0ef47bbdb2fc70fdcfc79b251d

See more details on using hashes here.

File details

Details for the file ray-1.7.1-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: ray-1.7.1-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 54.7 MB
  • Tags: CPython 3.9, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.6.9

File hashes

Hashes for ray-1.7.1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e7f3a10f1a4233091e6a51fff781450c3c229e06d4399dd1ac79f81a335f5b2e
MD5 4d9182e6a62c5cf02710e4e9a8053e92
BLAKE2b-256 c3c49b1f638f6f8abf47d059e9d05e80406673a1f46f0f4c85491c2e9ee0103f

See more details on using hashes here.

File details

Details for the file ray-1.7.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: ray-1.7.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 18.0 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.6.9

File hashes

Hashes for ray-1.7.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 d8a5de62c90c282739eccfcc6bfc07de78589e39f6afe87b97b38dde0e5dd4ff
MD5 12a30b39779879f87b3c0e7e0bb24408
BLAKE2b-256 aa973374f7760a0c800b240f14f81e7affa0e86eed3a09f72b9a29dd46b8fc09

See more details on using hashes here.

File details

Details for the file ray-1.7.1-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

  • Download URL: ray-1.7.1-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 53.7 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.6.9

File hashes

Hashes for ray-1.7.1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1de888597cab2b2908ef6422cce2015ba2bf73712f076c12dc77bc71959f78c8
MD5 4cc6fd66217a49ca6a2b9db915e5c3d8
BLAKE2b-256 668c5480cbdadb5486703f50a31634d9c75816087cb1073172d913793e761a33

See more details on using hashes here.

File details

Details for the file ray-1.7.1-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: ray-1.7.1-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 54.7 MB
  • Tags: CPython 3.8, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.6.9

File hashes

Hashes for ray-1.7.1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 490af53db6c7aff6905edb17feace60cae5894b3b5dbbf48e3d3d1ef980f6760
MD5 7b872c77f1d918073b685bf87f72762d
BLAKE2b-256 9a88eda17fc6f63e022400b3e6143488fcfbd978aa188c99ce1d77a4699e4add

See more details on using hashes here.

File details

Details for the file ray-1.7.1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: ray-1.7.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 18.1 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.6.9

File hashes

Hashes for ray-1.7.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 120162e76b3de2b8d60e2ae4bf509afacfcc0c80d178f2803ad97f354097d8bc
MD5 8d012d7a05efed15926df69d9a9c95e7
BLAKE2b-256 d25b47b809b9bbf9b2f2046174addf60f20907726a899a2e34b6a11ae5fa48e5

See more details on using hashes here.

File details

Details for the file ray-1.7.1-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: ray-1.7.1-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 54.0 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.6.9

File hashes

Hashes for ray-1.7.1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 28c48c48878c4e6c5e97b10e3b50ff7b774eb97b224083610118d1b10108780b
MD5 b111ee12f94272ca9d7f00effe13e59c
BLAKE2b-256 ffc38d0ef2e150a20018f21192b79a6d0b9e14aa8ff68e9b8d4c60f595973871

See more details on using hashes here.

File details

Details for the file ray-1.7.1-cp37-cp37m-macosx_10_15_intel.whl.

File metadata

  • Download URL: ray-1.7.1-cp37-cp37m-macosx_10_15_intel.whl
  • Upload date:
  • Size: 54.9 MB
  • Tags: CPython 3.7m, macOS 10.15+ Intel (x86-64, i386)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.6.9

File hashes

Hashes for ray-1.7.1-cp37-cp37m-macosx_10_15_intel.whl
Algorithm Hash digest
SHA256 d516e3a932179edbe7387d1b89d9a745d90dd86bd3e5f784ff6d35e17ec3d8c1
MD5 77781b9eca3c116e601637d4b3cabbe2
BLAKE2b-256 79c13c6e18b3b97d1ace852fae325cc1d8a5b2339fdce183d5d913a4e3dc8967

See more details on using hashes here.

File details

Details for the file ray-1.7.1-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: ray-1.7.1-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 18.1 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.6.9

File hashes

Hashes for ray-1.7.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 902f911aaa6df3e309076f5d81d8bed472693e060dcba0538095bd14006e9f3d
MD5 c62aae13a44ae0da657aea37b329fcb7
BLAKE2b-256 6520e44924f6be87016e4d457acb16db25352fbc8e7e87a302fa0847a039e570

See more details on using hashes here.

File details

Details for the file ray-1.7.1-cp36-cp36m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: ray-1.7.1-cp36-cp36m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 54.0 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.6.9

File hashes

Hashes for ray-1.7.1-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3efd9213953df717e7f748c590a808ecd785c6b33ec6dfa50b2a7171287abbdd
MD5 917851d544675bd579430ffdf354ffb6
BLAKE2b-256 cb5652fd7b9324e7e02089111b4b81771d9d1a77b146c68e5fab864dfa07fd6d

See more details on using hashes here.

File details

Details for the file ray-1.7.1-cp36-cp36m-macosx_10_15_intel.whl.

File metadata

  • Download URL: ray-1.7.1-cp36-cp36m-macosx_10_15_intel.whl
  • Upload date:
  • Size: 54.9 MB
  • Tags: CPython 3.6m, macOS 10.15+ Intel (x86-64, i386)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.6.9

File hashes

Hashes for ray-1.7.1-cp36-cp36m-macosx_10_15_intel.whl
Algorithm Hash digest
SHA256 2b6d3b72c4d126cb7ee490c1c79a1a0fb1568089f3dab603ab4a41185e220492
MD5 22738459a841978113ab5d7a3f89555d
BLAKE2b-256 a0c2241c0235089cee7ca7581834ccd7596b031f4f4bc7a881a5f2ef17c6c5d5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page