Skip to main content

A subpackage of Ray which provides the Ray C++ API.

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

  • Train: Distributed Deep Learning (beta)

  • Datasets: Distributed Data Loading and Compute (beta)

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

This version

1.9.0

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_cpp-1.9.0-cp39-cp39-win_amd64.whl (17.1 MB view details)

Uploaded CPython 3.9Windows x86-64

ray_cpp-1.9.0-cp39-cp39-manylinux2014_x86_64.whl (28.9 MB view details)

Uploaded CPython 3.9

ray_cpp-1.9.0-cp39-cp39-macosx_11_0_arm64.whl (25.0 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

ray_cpp-1.9.0-cp39-cp39-macosx_10_15_x86_64.whl (27.0 MB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

ray_cpp-1.9.0-cp38-cp38-win_amd64.whl (17.1 MB view details)

Uploaded CPython 3.8Windows x86-64

ray_cpp-1.9.0-cp38-cp38-manylinux2014_x86_64.whl (28.9 MB view details)

Uploaded CPython 3.8

ray_cpp-1.9.0-cp38-cp38-macosx_11_0_arm64.whl (25.0 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

ray_cpp-1.9.0-cp38-cp38-macosx_10_15_x86_64.whl (27.0 MB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

ray_cpp-1.9.0-cp37-cp37m-win_amd64.whl (17.1 MB view details)

Uploaded CPython 3.7mWindows x86-64

ray_cpp-1.9.0-cp37-cp37m-manylinux2014_x86_64.whl (28.9 MB view details)

Uploaded CPython 3.7m

ray_cpp-1.9.0-cp37-cp37m-macosx_10_15_intel.whl (27.0 MB view details)

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

ray_cpp-1.9.0-cp36-cp36m-win_amd64.whl (17.1 MB view details)

Uploaded CPython 3.6mWindows x86-64

ray_cpp-1.9.0-cp36-cp36m-manylinux2014_x86_64.whl (28.9 MB view details)

Uploaded CPython 3.6m

ray_cpp-1.9.0-cp36-cp36m-macosx_10_15_intel.whl (27.0 MB view details)

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

File details

Details for the file ray_cpp-1.9.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: ray_cpp-1.9.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 17.1 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.6.4 pkginfo/1.8.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.9.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f8941e63561daf76967467ee00a5ff5a5f3d4455b35fa11668cb656470313753
MD5 b0d854a0522e841d6bd74ad7fb9ca310
BLAKE2b-256 5ed1d3746563da7b4c46eea4b16912f95af60672d4e87d9d2ad417d8fcc1fbf0

See more details on using hashes here.

File details

Details for the file ray_cpp-1.9.0-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

  • Download URL: ray_cpp-1.9.0-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 28.9 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.6.4 pkginfo/1.8.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.9.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 89c6a026fa32b0e715ee8e39a23f9276a62911de3f2f67638c2e5cf870b012d0
MD5 7f2dac4c3c7ec9370ebd8f07d12f7a57
BLAKE2b-256 6fbaf7748a84cc61e98df8c4c9adffe174893ddb47fb5e3e3dd0ee53bd0aed88

See more details on using hashes here.

File details

Details for the file ray_cpp-1.9.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: ray_cpp-1.9.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 25.0 MB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.6.4 pkginfo/1.8.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.9.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b044411fcfd9e980a11cf6d5a5761e223274972575ac4d2869d7be49b3e3f4a
MD5 7d4e25716c386481ec5fb35eee680de6
BLAKE2b-256 afcc6fa8caab64b1283819e5eafbe920e486e88e9f7cce9c123bf3c3e4bea69a

See more details on using hashes here.

File details

Details for the file ray_cpp-1.9.0-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: ray_cpp-1.9.0-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 27.0 MB
  • Tags: CPython 3.9, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.6.4 pkginfo/1.8.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.9.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 56c77f8c55bc24b86abb2f6f308de8d36e216f0fc8d933c98460986b4c826c4c
MD5 2f37e47264c88dea2c4e31164d1aaf8f
BLAKE2b-256 6f9f629f797f82eee4e44311ed58b06c4bc30db1b241dc41ed4b909078576621

See more details on using hashes here.

File details

Details for the file ray_cpp-1.9.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: ray_cpp-1.9.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 17.1 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.6.4 pkginfo/1.8.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.9.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 bd683d1fb62c9abbf47055f07e5d856b8197ecf5ce7f90ab430d685647b7cf3d
MD5 53723a00ed09dd2e19c51006454d90e6
BLAKE2b-256 e16c598e3028a3e0208764ae8bdebd741345e526a1bf3871cd0677763a306534

See more details on using hashes here.

File details

Details for the file ray_cpp-1.9.0-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

  • Download URL: ray_cpp-1.9.0-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 28.9 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.6.4 pkginfo/1.8.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.9.0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 32b361b9fb67f63ff07993e16f9358beae38e64bd133cabaf19667e1c76d75e3
MD5 b8fed722696b60d1cf19797d25b18ef8
BLAKE2b-256 134b41ce5dc06e96dbb7e5bdc655b496744925e95dac4b21b8b86d26c2f0fc79

See more details on using hashes here.

File details

Details for the file ray_cpp-1.9.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

  • Download URL: ray_cpp-1.9.0-cp38-cp38-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 25.0 MB
  • Tags: CPython 3.8, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.6.4 pkginfo/1.8.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.9.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1f5b60a1e1a655c7a71c36c13c7cb31eeec23075f7a0820c260e33c0fe9f42a3
MD5 9643c6cdd404abe9dc89a5c3b0297f97
BLAKE2b-256 dfb4ee7b208675c1c4a1fd2bee1f39a7138edb0635704f4f92893970819fd3c2

See more details on using hashes here.

File details

Details for the file ray_cpp-1.9.0-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: ray_cpp-1.9.0-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 27.0 MB
  • Tags: CPython 3.8, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.6.4 pkginfo/1.8.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.9.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b525ca06d4a37aca5987777f5f8406ebf1e5c72b1c84475d996ac8d430bc9e35
MD5 cf5a27292f4e21eec3e8df302ef85c68
BLAKE2b-256 175cc33bb2f0e8987f14bddce47dc18078c43b51d1533dfceed6f052aac118ea

See more details on using hashes here.

File details

Details for the file ray_cpp-1.9.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: ray_cpp-1.9.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 17.1 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.6.4 pkginfo/1.8.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.9.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 a6c456e1cad534878710bceadae014b4a8bfdd4b5376b6b465eeea41b4225f42
MD5 efcaabfd5c4a556c7df807f7081192b5
BLAKE2b-256 3bef8d98aa6040232792483672fc798bd4e38f98369c6c69032f761b3dbdccb9

See more details on using hashes here.

File details

Details for the file ray_cpp-1.9.0-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: ray_cpp-1.9.0-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 28.9 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.6.4 pkginfo/1.8.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.9.0-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cfc1b841c129f8c63a3cd1aa7ae1fd68e2c1e199bc361b8c608b5f20e5cd8baa
MD5 f9174d5b1b66137a93c864094234fee2
BLAKE2b-256 ee75e37ecc3c244330905b743042c72017dea5fe36e87ba2e2148205370f3121

See more details on using hashes here.

File details

Details for the file ray_cpp-1.9.0-cp37-cp37m-macosx_10_15_intel.whl.

File metadata

  • Download URL: ray_cpp-1.9.0-cp37-cp37m-macosx_10_15_intel.whl
  • Upload date:
  • Size: 27.0 MB
  • Tags: CPython 3.7m, macOS 10.15+ Intel (x86-64, i386)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.6.4 pkginfo/1.8.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.9.0-cp37-cp37m-macosx_10_15_intel.whl
Algorithm Hash digest
SHA256 ae5299641142280b8d3ee308e5c0a4bd51183ad7b8a1862439936e709d723ed3
MD5 280f4a8c1133cb6085de95ac6d400d22
BLAKE2b-256 351c5b6b9507e7ffc35a7aae869be332cb351cd1e350bafd586aaea2e4131948

See more details on using hashes here.

File details

Details for the file ray_cpp-1.9.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: ray_cpp-1.9.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 17.1 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.6.4 pkginfo/1.8.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.9.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 b7abbb564c2f818e79b86a9e1c43ada66e1452702ca904c6bb3bed51c04d4350
MD5 71a7e2b8818416fe6fcff35b289a50ae
BLAKE2b-256 048ca5a84bb79ee60f682f50fb5ae2f0b2cecf8101ab7ae3ccfdaf666bdf9ff6

See more details on using hashes here.

File details

Details for the file ray_cpp-1.9.0-cp36-cp36m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: ray_cpp-1.9.0-cp36-cp36m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 28.9 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.6.4 pkginfo/1.8.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.9.0-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f510213bee079fc649be3a025290d7513ce9e10931daeae7a19620624aafef31
MD5 306604cc9eedb988604a76cdb7863e22
BLAKE2b-256 05e70efe91a9d0d45a2cc0e569755c17ab2e0e15b6ac7e0499b247e160fdf99d

See more details on using hashes here.

File details

Details for the file ray_cpp-1.9.0-cp36-cp36m-macosx_10_15_intel.whl.

File metadata

  • Download URL: ray_cpp-1.9.0-cp36-cp36m-macosx_10_15_intel.whl
  • Upload date:
  • Size: 27.0 MB
  • Tags: CPython 3.6m, macOS 10.15+ Intel (x86-64, i386)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.6.4 pkginfo/1.8.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.9.0-cp36-cp36m-macosx_10_15_intel.whl
Algorithm Hash digest
SHA256 40858ab074bd67c888f180a87953edd2d5b275929ab8ba405b37ec12c1632d0d
MD5 4e96c2ab94a357a2b31e3bdc8ed559cd
BLAKE2b-256 5951bc79b4f4add7182192b442b695bbaef9366cfefac1527c6318f1af265acc

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