Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Panel
borderColorlightgray
borderWidth1
titleBGColormediumgray
borderStylesolid
titleSadržaj

Table of Contents

Uvod

Kao što je navedeno u službenoj dokumentaciji, Dask je "fleksibilna knjižnica namijenjena paralelizaciji

...

kojeg se distribuiraju poslovi korištenjem Client API-ja. Primjer . Dva su načina na koji se ovo može postignuti:

  1. dask-mpi: Kreiranjem dask klastera u SGE skripti prije zvanja python programa
  2. initialize: Inicijalizacijom dask klastera unutar python programa


U prvom slučaju (nakon zvanja dask modula u SGE skripti) potrebno je pozvati dask-mpi naredbu prije izvršavanja

python programa, dok se u python skripti treba inicijalizirati klijent s kreiranom scheduler.json datotekom:

Code Block
languagebash
titledask-mpi SGE primjer
linenumberstrue
collapsetrue
...

# aktiviraj dask
module load dask

# pokreni dask klaster putem dask-mpi
mpirun -np $NSLOTS dask-mpi \
    --nthreads 1 \
    --interface ib0 \
    --worker-class distributed.Worker \
    --scheduler-file scheduler.json &

# pokreni python program
python moj_program.py


Code Block
languagepy
titledask-mpi python primjer
linenumberstrue
collapsetrue
# pozovi python module
from dask_mpi import initialize
from dask.distributed import Client

# spoji klijenta
client = Client(scheduler_file='scheduler.json')

# ostatak programa
...


U drugom slučaju, dask klaster se inicijalizira unutar python skripte dok se u SGE poziva putem naredbe mpirun:

Warning

Pri inicijalizaciji u python skripti putem dask_mpi.initialize modula, nužno je izvršiti inicijalizaciju prije pozivanja

dask.distributed.Client modula kao što je navedeno ispod


Code Block
languagebash
titleinitialize SGE primjer
linenumberstrue
collapsetrue
...

# aktiviraj dask
module load dask

# pokreni python program
mpirun -np $NSLOTS python moj_program.py


Code Block
languagepy
titleinitialize python primjer
linenumberstrue
collapsetrue
# pozovi i inicijaliziraj klaster
from dask_mpi import initialize
initialize()

# pozovi i definiraj klijenta
from dask.distributed import Client
client = Client()

# izvrši program
...

Primjeri

Primjeri obrade tipičnog dataframea, korištenja algoritma K sredina ili izabira najboljeg ML modela podnošenjem

na *mpi paralelnu okolinu se nalaze ispod.

...

Code Block
languagebash
titledataframe.sge
linenumberstrue
collapsetrue
#$ -cwd
#$ -o output/
#$ -e output/
#$ -P SRCE-18-0000-11-2222
#$ -pe *mpi 4

# aktiviraj dask
module load dask
    
# pokreni dask klaster
mpirun -np $NSLOTS dask-mpi \
    --nthreads 1 \
    --interface ib0 \
    --worker-class distributed.Worker \
    --scheduler-file scheduler.json &

# pričekaj
sleep 10

# potjeraj python skriptu
python example.py

...