Skip to main content

A subpackage of Ray which provide 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

  • Serve: Scalable and Programmable Serving

  • Datasets: Flexible Distributed Data Loading (beta)

  • 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.6.0-cp39-cp39-win_amd64.whl (5.6 kB view details)

Uploaded CPython 3.9Windows x86-64

ray_cpp-1.6.0-cp39-cp39-manylinux2014_x86_64.whl (5.6 kB view details)

Uploaded CPython 3.9

ray_cpp-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl (5.6 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

ray_cpp-1.6.0-cp38-cp38-win_amd64.whl (5.6 kB view details)

Uploaded CPython 3.8Windows x86-64

ray_cpp-1.6.0-cp38-cp38-manylinux2014_x86_64.whl (5.6 kB view details)

Uploaded CPython 3.8

ray_cpp-1.6.0-cp38-cp38-macosx_10_9_x86_64.whl (5.6 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

ray_cpp-1.6.0-cp37-cp37m-win_amd64.whl (5.6 kB view details)

Uploaded CPython 3.7mWindows x86-64

ray_cpp-1.6.0-cp37-cp37m-manylinux2014_x86_64.whl (5.6 kB view details)

Uploaded CPython 3.7m

ray_cpp-1.6.0-cp37-cp37m-macosx_10_6_intel.whl (5.6 kB view details)

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

ray_cpp-1.6.0-cp36-cp36m-win_amd64.whl (5.6 kB view details)

Uploaded CPython 3.6mWindows x86-64

ray_cpp-1.6.0-cp36-cp36m-manylinux2014_x86_64.whl (5.6 kB view details)

Uploaded CPython 3.6m

ray_cpp-1.6.0-cp36-cp36m-macosx_10_6_intel.whl (5.6 kB view details)

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

File details

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

File metadata

  • Download URL: ray_cpp-1.6.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.7

File hashes

Hashes for ray_cpp-1.6.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1569f8b373600a30fdd5896f088025bfd31223b1569d628709b1935ba5d8ef9f
MD5 2321b1e92f8cab513fec33de42279d5c
BLAKE2b-256 d4c7b3f23db37a00ab1db93888476a2acc2d09c45fec2771f99f14e7e06b01bd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.6.0-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.7

File hashes

Hashes for ray_cpp-1.6.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c264abc5e4f717f1731e56c4abfec65a9f562021e8bb5a74ba3c5a642838c61b
MD5 8d938188b468a82367c0ec4776d45046
BLAKE2b-256 3a68557df396feab2608844e4390781475c6974c8c6e29126f440247b5657ff4

See more details on using hashes here.

File details

Details for the file ray_cpp-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: ray_cpp-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.7

File hashes

Hashes for ray_cpp-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8c3117ec0599e5c5eba0bc4e75419d9ffc67966d6e5c3765af042b17cc69d6dd
MD5 b826ee4d1c56aad6b4e076a25948be22
BLAKE2b-256 d52517696c8e8783ebbd8708b215205e2b6bc126c9d708bd13be7e68e8d5368b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.6.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.7

File hashes

Hashes for ray_cpp-1.6.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 7c935896ac2d04cfb67cc99880ab312c0048884ea3682fc8bdcb364a23c4bd30
MD5 b175484ac9876cec6779267894d5777e
BLAKE2b-256 0ff5d8fb91946713f539f477d137c3b602881a1023ae4e18869743df6df6aad4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.6.0-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.7

File hashes

Hashes for ray_cpp-1.6.0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8583a6e96275758020d456225ad5ce8f6d7e36b12ec52ef3a5b993f3a0ee58aa
MD5 f02b1c0d5c4516420a7faac564df548e
BLAKE2b-256 8d257453c33ce2d07887a218c4418b094e87e21f53287e6945bef909e79c1837

See more details on using hashes here.

File details

Details for the file ray_cpp-1.6.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: ray_cpp-1.6.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.7

File hashes

Hashes for ray_cpp-1.6.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a4f715ad2cd1d84e2a5163ad238ab2c6e8a189d2a24e6ea1f1098b6cfab2fedc
MD5 52f2eb8a53b4f18bca46f44b7cd6b1de
BLAKE2b-256 cd7e04a495d0031ad9d58c065d449bd072051f8609f920be3e4ef7433a834f43

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.6.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.7

File hashes

Hashes for ray_cpp-1.6.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 290236568aa7dc3400804c42d82e7ba6d9243c40cb70786afac8efcb23a1b626
MD5 c7c4b805a137d56f9b41fcfc57496b32
BLAKE2b-256 a64e02dca8c9ab5014292e7719f4f40221be4acf22ddeb80b17f1eed81a2e940

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.6.0-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.7

File hashes

Hashes for ray_cpp-1.6.0-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 44b8999b4c5c1f85be18e04c7fe7db76d787881f3b6bd818c0bb0e7625824e52
MD5 c7cbc002c9e5bb64e13f40b1c41d0e10
BLAKE2b-256 02f8ba47f7707951b67292c4dad37c25a4dea2a885bf32d8a7aed9aeb244f24b

See more details on using hashes here.

File details

Details for the file ray_cpp-1.6.0-cp37-cp37m-macosx_10_6_intel.whl.

File metadata

  • Download URL: ray_cpp-1.6.0-cp37-cp37m-macosx_10_6_intel.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: CPython 3.7m, macOS 10.6+ Intel (x86-64, i386)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.7

File hashes

Hashes for ray_cpp-1.6.0-cp37-cp37m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 1d276e4b5d4d8d8c8069c598f2415f0aa0c49117609f2cbb4c68ae66b020d395
MD5 c8f133fdac5410786fa16e8e444f126d
BLAKE2b-256 ddd9dac03323bbc9be2194e630294c5f9d8cf9c57337400349b271a69544c247

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.6.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.7

File hashes

Hashes for ray_cpp-1.6.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 b0e579acd3b0e9313e3c483be391c5a1da132ad39481cb4b4c607f5eb6e7c773
MD5 3a8800e8787ad5ad9f149b33a7c0a0ed
BLAKE2b-256 c8b1df8e55391949fb7d90be941e09810c15bbc155ae00155652ecf7e865b204

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ray_cpp-1.6.0-cp36-cp36m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.7

File hashes

Hashes for ray_cpp-1.6.0-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 071a22f5103e09dc9f90fa8e091a29037d2d602da977d30bc2f990b7a9ceb720
MD5 9c25afb89cacc41eab9f135fd1cd4c40
BLAKE2b-256 11d09092dd8d53a11dbcb090f4555cce3bf3971bb06e3a1feca5ea52ac0fb159

See more details on using hashes here.

File details

Details for the file ray_cpp-1.6.0-cp36-cp36m-macosx_10_6_intel.whl.

File metadata

  • Download URL: ray_cpp-1.6.0-cp36-cp36m-macosx_10_6_intel.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: CPython 3.6m, macOS 10.6+ Intel (x86-64, i386)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.7

File hashes

Hashes for ray_cpp-1.6.0-cp36-cp36m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 5534c92ccc7c1bfd42f8e52df85e4ec0047eea3a497fcd6a3530be651d426766
MD5 31a7c50ecb6e68713abdea65cb1a2420
BLAKE2b-256 0e559786c6553c82a87d86762644d5bcd0bf81bb5cb1a6770534369f12760d45

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