Skip to content

An introductory tutorial about leveraging Ray core features for distributed patterns.

License

Notifications You must be signed in to change notification settings

pgnepal/ray_tutorial

 
 

Repository files navigation

A Guided Tour of Ray Core

An introductory tutorial about leveraging Ray core features for distributed patterns.

Note: these examples have been tested using Python 3.7+ on:

  • Ubuntu 18.04 LTS
  • macOS 10.13

See the accompanying slides.pdf file for presentation slide deck.

Getting Started

To get started use git to clone this public repository:

git clone https://github.com/DerwenAI/ray_tutorial.git
cd ray_tutorial

Set up a local virtual environment and activate it:

python3 -m venv venv
source venv/bin/activate

Then use pip to install the required dependencies:

python3 -m pip install -U pip
python3 -m pip install -r requirements.txt

Alternatively, if you use conda for installing Python packages:

conda create -n ray_tutorial python=3.7
conda activate ray_tutorial
python3 -m pip install -r requirements.txt

Note: if you run into any problems on Python 3.8+ with "wheels" during a pip installation, you may need to use the conda approach instead.

Then launch the JupyterLab environment to run examples in this repo:

jupyter-lab

Browse to http://localhost:8888/lab to continue.

Syllabus

Overview

A Guided Tour of Ray Core covers an introductory, hands-on coding tour through the core features of Ray, which provide powerful yet easy-to-use design patterns for implementing distributed systems in Python. This training includes a brief talk to provide overview of concepts, then coding for remote functions, actors, parallel iterators, and so on. Then we'll follow with Q&A. All code is available in notebooks in the GitHub repo.

Intended Audience

  • Python developers who want to learn how to parallelize their application code

Note: this material is not intended as an introduction to the higher level components in Ray, such as RLlib and Ray Tune.

Prerequisites

  • Some prior experience developing code in Python
  • Basic understanding of distributed systems

Key Takeaways

  • What are the Ray core features and how to use them?
  • In which contexts are the different approaches indicated?
  • Profiling methods, to decide when to make trade-offs (compute cost, memory, I/O, etc.) ?

Course Outline

  1. Introduction to Ray core features as a pattern language for distributed systems
  2. Overview of the main Ray core features and their intended usage
  3. Background, primary sources, and closely related resources about distributed systems
  4. Code samples:
  5. Profiling: comparing trade-offs and overhead
  6. Ray Summit, Anyscale Connect, developer forums, and other resources
  7. Q&A

Other Recommended Reading

About

An introductory tutorial about leveraging Ray core features for distributed patterns.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 100.0%