Laboratorium 10 + 11: platforma Ray

Ray to zaimplementowana w języku Python platforma do tworzenia i zarządzania rozproszonymi i skalowalnymi aplikacjami.

Platforma Ray wspiera programowanie równoległe i asynchroniczne, dzięki czemu może być wykorzystywana do budowania zaawansowanych aplikacji związanych z uczeniem maszynowym, przetwarzaniem danych oraz symulacjami.

Więcej informacji: Ray

Podobnie jak Spark, Ray umożliwia rozproszenie zadań pomiędzy węzły obliczeniowe. Na laboratorium będziemy używać Ray w trybie podobnym do Spark Standalone.

1. Budowa obrazów Dockera

Zbudujemy dwa obrazy:

  • ray-data-mining - instalacja Ray oraz podstawowych bibliotek uczenia maszynowego dla węzłów obliczeniowych
  • ray-jupyter - obraz dla drivera zawierający jupyter-lab i klika użytecznych bibliotek

Jeżeli nie chcesz uruchamiać w Dockerze, możesz poprostu zainstalować ray[air] oraz jupyter-lab

Pobierz archiwum ray.zip

Pliki są rozmieszczone w katalogach, jak na poniższym diagramie

|-ray-data-mining-+
|                 | Dockerfile
|
|-ray-jupyter-----+
|                 | Dockerfile
|                 | ray-lab.ipynb
|                 | twitter_training.csv
|                 | twitter_validation.csv
|

1.1 Obraz ray-data-mining

1. Przejdź do katalogu ray-data-mining zawierającego poniższy plik Dockerfile.

# image: ray-data-mining

FROM ubuntu:22.04

USER root

RUN set -ex; 
RUN apt-get update
RUN    apt-get install -y sudo python3 python3-pip
RUN    pip3 cache purge
RUN    pip3 install numpy 
RUN    pip3 install scikit-learn 
RUN    pip3 install scipy 
RUN    pip3 install pandas 
RUN    pip3 install matplotlib 
RUN    pip3 install ray[air] 
RUN    pip3 install py_spy
RUN    rm -rf /var/lib/apt/lists/*

2. Wydaj komendę:

docker build -f Dockerfile --tag ray-data-mining .

1.2 Obraz ray-jupyter

1. Przejdź do katalogu ray-jupyter zawierającego poniższy plik Dockerfile.

# image: ray-jupyter

FROM ray-data-mining

USER root

RUN pip3 install matplotlib 
RUN pip3 install seaborn 
RUN pip3 install jupyterlab 
RUN pip3 install ipywidgets tqdm


RUN useradd -m -g users ray && \
    echo "ray ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/ray && \
    chmod 0440 /etc/sudoers.d/ray

USER ray


WORKDIR /home/ray/notebooks

2. Wydaj komendę:

docker build -f Dockerfile --tag ray-jupyter .

2. Uruchomienie jupyter-lab

1. Przejdź do katalogu ray-jupyter i wydaj polecenie

docker run -it --rm -v ".:/home/ray/notebooks"  -p 9888:8888 -p 8265:8265 -p 8000:8000  --shm-size=4gb  ray-jupyter /bin/bash

Porty:

  • 9888 jest zarezerwowany dla jupyter-lab
  • 8265 dla Ray Dashboard
  • 8000 dla mikroserwisów

Ray intensywnie korzysta z dzielonej pamięci przechowując w niej obiekty w środowisku rozproszonym. Rozwiązanie oparte jest na bibliotekach arrow i rozszerzeniu Plasma. Stąd opcja dla dzielonej pamięci –shm-size=4gb. W razie potrzeby można ten rozmiar zmniejszyć, np. do 2gb.

2. W terminalu bash kontenera wydaj polecenie uruchamiające jupyter-lab

sudo --preserve-env jupyter-lab  --ip=0.0.0.0 --allow-root --IdentityProvider.token='ray'

3. Otwórz link http://localhost:9888/?token=ray w oknie przeglądarki i załaduj notatnik ray_lab.ipynb

3. Wykonaj zadania w notatniku

ed/lab_10.txt · Last modified: 2024/04/28 00:36 by pszwed
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0