Why Ray Core?
Learn why thousands of engineers and scientists are using Ray for creating scalable, distributed Python applications.
Flexibly compose distributed applications with tasks, actors, and objects in native Python code.
Run the same Ray code on any cloud — AWS, GCP, Azure — or even on-prem.
Ray Core can automatically scale (using Ray Autoscaler) up or down to smoothly handle changing compute load.
Massive scalability envelope
Ray Core can easily scale to thousands of cores, and is getting more scalable with every release.
Open community / ecosystem
With a vibrant dedicated community and rich ecosystem of integrations, fixes and best practices are easy to find.
Laptop -> Cluster with ease
With Ray Client, going from laptop to cluster is as easy as changing 1 variable.
Try it yourself
Install Ray with
pip install ray and give this example a try.
import ray # By adding the `@ray.remote` decorator, a regular Python function # becomes a Ray remote function. @ray.remote def my_function(): return 1 # To invoke this remote function, use the `remote` method. # This will immediately return an object ref (a future) and then create # a task that will be executed on a worker process. obj_ref = my_function.remote() # The result can be retrieved with ``ray.get``. assert ray.get(obj_ref) == 1 @ray.remote def slow_function(): time.sleep(10) return 1 # Invocations of Ray remote functions happen in parallel. # All computation is performed in the background, driven by Ray's internal event loop. results =  for _ in range(4): # this doesn't block results.append(slow_function.remote()) ray.get(results)
Do more with Ray libraries
Learn how you can scale other components of your machine learning pipelines, such as training, data processing, and serving, just as easily using Ray.
Scale deep learning
Scale model serving
Scale hyperparameter search