Introduction to Ray for Distributed Applications
ยฉ 2019-2022, Anyscale. All Rights Reserved
An introduction to Ray, the system for scaling your Python and machine learning workloads from a laptop to a cluster. We'll start with a hands-on exploration of the core Ray APIs for distributed workloads, covering basic distributed Ray Core API patterns, and then move on to a quick introduction to one of Ray's native libraries:
- Remote functions as tasks
- Remote objects as futures
- Remote classes as stateful actors
- Quick introduction to Ray's data and Ray AIR
Outline for this Tutorial Lesson ๐
Divided into three modules, each module will take about an hour, combined with lecture and followed by hands-on ๐ฉโ๐ป exercises in class.
Module 1
- Lecture 20 mins
- What is Ray and Why & Origins
- Ray Component & Architecture
- Ray Core API Decorators & Patterns
- Notebooks & Exercises
- Ray Functions as distribtued stateless tasks
- Ray Objects as Distributed future objects
- Ray Actors as distributed stateful services
Module 2
- Ray Actors Revisited: Understand a common pattern used in Ray native libraries
- Tour of the Ray APIs: a quick look at common APIs and some tricks & tips if new to Ray
- Distributed multiprocessing.Pool: different strategies to scale Python with Ray
- Notebooks & Exercises
Module 3
- Brief Introduction to Ray Data: A gentle introduction to Ray Datasets
- Brief Introduction to Ray AIR: A gentle introduction to Ray AIR
Extra Modules
- Additional and supplemental material to peruse at leisure time.
In this tutorial, you will:
๐ฉโ๐ป Understand what the Ray ecosystem is and why to use it๐ Learn Ray's Core basic APIs and Python APIs- ๐งโ๐ปUse Ray APIs to convert Python functions and classes into distributed stateless and stateful tasks
๐ Use Dashboard for inspection and observation- ๐งโ๐ปDiscover the purpose of Ray native libraries and how to use them
๐Prerequisite knowledge
Level: Beginners or new to Ray
- Familiarity with Python 3.7+ and basic programming concepts: lists, comprehensions, decorators, functions, dictionaries, classes, loops, exceptional handling, etc
- Laptop with at least 8-16GB Memory with latest Chrome browser
- Prior knowledge of Jupyter notebooks
- Basic knowledge of machine learning concepts
๐ฉ Setup instructions for local laptop ๐ป
If you want to follow the material in class, please follow this instructions before class to setup your laptop.
Using conda
If you need to install Anaconda, follow the instructions here.
If you already have Anaconda installed, consider running conda upgrade --all.
conda create -n ray-core-tutorial python=3.8
conda activate ray-core-tutorial
git clone git@github.com:dmatrix/ray-core-tutorial.git
cd to <cloned_dir>
python3 -m pip install -r requirements.txt
jupyter lab
Installing on Apple M1
If you are using Apple M1 laptop ๐ follow the following instructions:
conda create -n ray-core-tutorial python=3.8
conda activate ray-core-tutorial
conda install grpcio=1.43.0
git clone git@github.com:dmatrix/ray-core-tutorial.git
cd to <cloned_dir>
python3 -m pip install -r requirements.txt
jupyter lab
Using only pip
git clone git@github.com:anyscale/ray-summit-2022-training.git
cd to <cloned_dir>
python3 -m pip install -r requirements.txt
jupyter lab
Let's have ๐ fun with Ray!
To start tutorials, go here.
And when you are finished, help us improve training. Please fill out this survey