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

  • 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_cpp-1.7.1-cp39-cp39-win_amd64.whl (16.7 MB view details)

Uploaded CPython 3.9Windows x86-64

ray_cpp-1.7.1-cp39-cp39-manylinux2014_x86_64.whl (28.5 MB view details)

Uploaded CPython 3.9

ray_cpp-1.7.1-cp39-cp39-macosx_10_15_x86_64.whl (26.7 MB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

ray_cpp-1.7.1-cp38-cp38-win_amd64.whl (16.7 MB view details)

Uploaded CPython 3.8Windows x86-64

ray_cpp-1.7.1-cp38-cp38-manylinux2014_x86_64.whl (28.5 MB view details)

Uploaded CPython 3.8

ray_cpp-1.7.1-cp38-cp38-macosx_10_15_x86_64.whl (26.7 MB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

ray_cpp-1.7.1-cp37-cp37m-win_amd64.whl (16.7 MB view details)

Uploaded CPython 3.7mWindows x86-64

ray_cpp-1.7.1-cp37-cp37m-manylinux2014_x86_64.whl (28.5 MB view details)

Uploaded CPython 3.7m

ray_cpp-1.7.1-cp37-cp37m-macosx_10_15_intel.whl (26.7 MB view details)

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

ray_cpp-1.7.1-cp36-cp36m-win_amd64.whl (16.7 MB view details)

Uploaded CPython 3.6mWindows x86-64

ray_cpp-1.7.1-cp36-cp36m-manylinux2014_x86_64.whl (28.5 MB view details)

Uploaded CPython 3.6m

ray_cpp-1.7.1-cp36-cp36m-macosx_10_15_intel.whl (26.7 MB view details)

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

File details

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

File metadata

  • Download URL: ray_cpp-1.7.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 16.7 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_cpp-1.7.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 61153fb75736a8606c24b65086ef184c66bad66fca5b46bf3fdd395c7923b983
MD5 d7b4266c71d0a1db04c3f369cb0cd2df
BLAKE2b-256 32f11c59d9455d5f821ed861497a8e1d4310647e4e881d6bcc2e5acd1232bc1c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.7.1-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 28.5 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_cpp-1.7.1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6615efc621c0d7b60e975947a5d4940cd59cbbe5fcb0ca345438d7485627ca18
MD5 7efc8e53f6a327aeaf53fca3f1e833cd
BLAKE2b-256 d1efd07855bb68d4a5bbd4c29269ff1d11680dfd2d25626b070e4388564e8cb6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.7.1-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 26.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_cpp-1.7.1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 9a8fdcc0c6c03187a699fae12051b014c256dfd71efd156facda84596ceda952
MD5 5b51bdb172d7bfdbbeb32762b9c32bef
BLAKE2b-256 9a4fff8ef12441dd21c9da989a2386b3602e8399c85ae8518fd46929ca759416

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.7.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 16.7 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_cpp-1.7.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b93ee4a658cdb4a91959bd5fb242a134881c510d1e0ca6fef3a4a12c2f3310f8
MD5 965299fd501fad49cd77188ed3488b50
BLAKE2b-256 5e12715507b2bf4cd239e80a86b2fe764769aabdd6640ae01534cea9cb26f456

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.7.1-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 28.5 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_cpp-1.7.1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 69306f05e66baf9cb91ee2229b7cd41e86f795494ba6b55c3617ff19bb7c9f3c
MD5 ef1c5d6fc9b2d4aeac06ef096beba2b9
BLAKE2b-256 2e56e584160ff9dc0d0adf0b5e55680f3ddc9473decc20a4ecef48bebd1d5dfb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.7.1-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 26.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_cpp-1.7.1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 691876dfc5fcee45e52559964012bf3cce37cdc26a8edb25ee53aec59f637786
MD5 509492d0dbb6d28c8d81c774299e23d8
BLAKE2b-256 6328c01003e131140500d0433ae8ab6963b53dcca7480909fcb3b0fc53f34363

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.7.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 16.7 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_cpp-1.7.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 73837cfb6e39c372b13df92c48ada7794dda4bec40892962be98b01147242a9f
MD5 cd3060b64922c234cd82d18de24efddb
BLAKE2b-256 b2aad8295f4f5c0019e6e3377d2334cd20ef278b08472e8972c3fb0545162045

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.7.1-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 28.5 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_cpp-1.7.1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9b39fd71b07d52bce99cb9fa12919925c528de308425bdba674626c81b7ef9c2
MD5 8aa9345db9cf29a756739ea3a434410c
BLAKE2b-256 a260cf3e0abd7ca6af606132b10ebf7fe1d25e3e58b63a318c4e9c3b146704fc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.7.1-cp37-cp37m-macosx_10_15_intel.whl
  • Upload date:
  • Size: 26.7 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_cpp-1.7.1-cp37-cp37m-macosx_10_15_intel.whl
Algorithm Hash digest
SHA256 d93ab9b96ee34b1b6d9deff30a68c5a13c5d64c1d462cd2e71d50a4a53038b36
MD5 10f609938dbcb789eb0afb1ab7edb230
BLAKE2b-256 f8061bca97817a7201be3a6cfc65e88bc77cda122055f9dfdf76d0458c126297

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.7.1-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 16.7 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_cpp-1.7.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 1afc524a597bebacf798de5ce3e897a70fcf7c83f451b6c6f5e71e75a375cd27
MD5 8a60e7558170b3112b911a7f64256fae
BLAKE2b-256 eddaf22bc654b074597bdb5688a78c7a09c96d6a66d909676e4a83358d97ee42

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.7.1-cp36-cp36m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 28.5 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_cpp-1.7.1-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 12360702b3b568ab72f730a28f5a0dbadf2391f338fbf20f3bf88f9a50646dbc
MD5 0e96616d0a701b4794e3701476333aa5
BLAKE2b-256 df4f0c475d3a529dafff3e9bccfa46856053ab51418d13f1d7e35df49bd37582

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.7.1-cp36-cp36m-macosx_10_15_intel.whl
  • Upload date:
  • Size: 26.7 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_cpp-1.7.1-cp36-cp36m-macosx_10_15_intel.whl
Algorithm Hash digest
SHA256 63682edbc790fff887d6067755d474859e62d07e8b66655829dd4b8296740d2d
MD5 d31e6a485f5c47e0bb45e1a5e5cae052
BLAKE2b-256 ee0cdd39bbe6ec969c06bbc9cedf7b363f57b4dd53af4581baeec58319a3a560

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