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 (alpha)

  • Datasets: Flexible Distributed Data Loading (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.8.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.8.0-cp39-cp39-win_amd64.whl (16.9 MB view details)

Uploaded CPython 3.9Windows x86-64

ray_cpp-1.8.0-cp39-cp39-manylinux2014_x86_64.whl (28.6 MB view details)

Uploaded CPython 3.9

ray_cpp-1.8.0-cp39-cp39-macosx_11_0_arm64.whl (24.8 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

ray_cpp-1.8.0-cp39-cp39-macosx_10_15_x86_64.whl (26.8 MB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

ray_cpp-1.8.0-cp38-cp38-win_amd64.whl (16.9 MB view details)

Uploaded CPython 3.8Windows x86-64

ray_cpp-1.8.0-cp38-cp38-manylinux2014_x86_64.whl (28.6 MB view details)

Uploaded CPython 3.8

ray_cpp-1.8.0-cp38-cp38-macosx_11_0_arm64.whl (24.8 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

ray_cpp-1.8.0-cp38-cp38-macosx_10_15_x86_64.whl (26.8 MB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

ray_cpp-1.8.0-cp37-cp37m-win_amd64.whl (16.9 MB view details)

Uploaded CPython 3.7mWindows x86-64

ray_cpp-1.8.0-cp37-cp37m-manylinux2014_x86_64.whl (28.6 MB view details)

Uploaded CPython 3.7m

ray_cpp-1.8.0-cp37-cp37m-macosx_10_15_intel.whl (26.8 MB view details)

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

ray_cpp-1.8.0-cp36-cp36m-win_amd64.whl (16.9 MB view details)

Uploaded CPython 3.6mWindows x86-64

ray_cpp-1.8.0-cp36-cp36m-manylinux2014_x86_64.whl (28.6 MB view details)

Uploaded CPython 3.6m

ray_cpp-1.8.0-cp36-cp36m-macosx_10_15_intel.whl (26.8 MB view details)

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

File details

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

File metadata

  • Download URL: ray_cpp-1.8.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 16.9 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.8.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 4b6465c130e629abf92a7421eec463a3be53c3872b5e046c95776fb055358b9f
MD5 24898b0b1c796f74931d9d0fad029a78
BLAKE2b-256 67f48f1ade8e3d0aefa5747ea9fb9471a2c08952e9e6606a95723fd57be5b829

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.8.0-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 28.6 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.8.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d0ed3b287610286d40550390644217d45a10d6c51e6e98f5b4f6a44afe342755
MD5 bfadd91ef7c0898e491d25a3a26205dc
BLAKE2b-256 c53f52417ce24103e473e5ae0319ba5fa11a7d677fff28595af9d7513f3f73b3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.8.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 24.8 MB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.8.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bbb284371c0d002268b80bfa9f48e64b4c02b13f81e818759616d2890042dbcd
MD5 35f78ac1551f69b0d2562d98a5a272bb
BLAKE2b-256 127ec5e0b0b626d6c59616e5949a1e30f0388390b5f4ec9a8422c9cf8679f831

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.8.0-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 26.8 MB
  • Tags: CPython 3.9, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.8.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 dcce78c7bf1d211a9e142eee951eb93909ecbbcaacaa35fc0ffade356f7959ec
MD5 eb7718995027727775e2f43c7e650e83
BLAKE2b-256 da0df875fe2db01dc9d70b9b545d78b9eb6ab143f4887c2dd8a8f177892d824f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.8.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 16.9 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.8.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 02efc7864b61e24d6e6fad85df54af118c4849efd0dce770cae23c67396166e3
MD5 a057e1d88726af719dceb818b04d2a91
BLAKE2b-256 5b39b7165d573dba09129047193870ed074f31171b3c9381e1c3c5465f22de59

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.8.0-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 28.6 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.8.0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 762ba5d2c63cc4f2dc5c48882c86d5650dcc3647bb3f54ebba05c3cb852c53b5
MD5 7f3fb9ee8dbf296170c1b2ed0f401f92
BLAKE2b-256 0a0584136fe195687cfce68e34849db85fda6b45efe6145418dc292d1635bf6d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.8.0-cp38-cp38-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 24.8 MB
  • Tags: CPython 3.8, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.8.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 be7ea2240cc4c5c19d26f86c0242b03b64d6eb760cd2f1e8fd1aaaa48302f4db
MD5 c57416e2404de0866d1d706e0065fed6
BLAKE2b-256 11116217d4d492c065cc1e3281d9e3d68cf37063032495d8f28f694e6f613436

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.8.0-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 26.8 MB
  • Tags: CPython 3.8, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.8.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b7b03a09ba92bbb9af1765ef25266eac4250158ddd6cedbead843bb04d728d1e
MD5 ff730e6a77ea477d1825ae271ef14a9f
BLAKE2b-256 64a0af6a3e75b4c6c46af186df60f4559373c0074af381911581d6146f6435d2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.8.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 16.9 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.8.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 fe8c0fb5c2b3e61f33d46b6c763883b9073106f53b12d68fc2d515e705e7e63f
MD5 9cf4e328ecf21a544e8aa12ef4394d7a
BLAKE2b-256 88b3b016f10a7c81718afaaa81a51423db7e34f51526f4d0945a8fa43983b748

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.8.0-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 28.6 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.8.0-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0beee73005c7b2d9a126b46b4c21b5906710ac0553ba52dd070510267a6ded61
MD5 b78fe84d7851ab8f8d24c0971ed82444
BLAKE2b-256 02ac0c8fefce3b99ec9d21406f329e44ccb293a263dd997dc335053b408230a3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.8.0-cp37-cp37m-macosx_10_15_intel.whl
  • Upload date:
  • Size: 26.8 MB
  • Tags: CPython 3.7m, macOS 10.15+ Intel (x86-64, i386)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.8.0-cp37-cp37m-macosx_10_15_intel.whl
Algorithm Hash digest
SHA256 0cbe81db3823e933a14f7e26995d2434ea76ed577c4a694d6ee2a0c9f573523f
MD5 434c704c264588fc7dfd10aea0bfc696
BLAKE2b-256 395bba3ea4ce14973b5aee0041f374606dbfff2357f1956fb0348a41d99983ea

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.8.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 16.9 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.8.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 408b0fb8906f67c5e265e51facc10e697eda28f2b4af3ba151e4f3e9605b1a6e
MD5 d37f88b923da08876f03c6819104aeaa
BLAKE2b-256 6ac8a7b9cd4eb96a4849e837a6a3e7003f94d4179f30df6f6fc8a9299718f5ad

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.8.0-cp36-cp36m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 28.6 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.8.0-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 541e588c732841d2844770ee3faa6d92c556223790451fb294c3006ba0f49439
MD5 ced9b070acfce8637dea3fbde5c774fd
BLAKE2b-256 dd5a2cb658c4c8ed244a5ab47db2f77d8dc957b1bcdf7e55798276c9aa833d8c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.8.0-cp36-cp36m-macosx_10_15_intel.whl
  • Upload date:
  • Size: 26.8 MB
  • Tags: CPython 3.6m, macOS 10.15+ Intel (x86-64, i386)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for ray_cpp-1.8.0-cp36-cp36m-macosx_10_15_intel.whl
Algorithm Hash digest
SHA256 695768d7b34dd00dbd20475e33d3bf68fc28b31646378d4e2d0dcc4c6bef637d
MD5 1c83d4b14a17c142468219228601bfec
BLAKE2b-256 b0575cc3bfeaf08760f5fa74ca83665207c5b092a46f3ef91172dbadace5d17b

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