Panel |
---|
borderColor | lightgray |
---|
borderWidth | 1 |
---|
titleBGColor | mediumgray |
---|
borderStyle | solid |
---|
title | Sadržaj |
---|
|
|
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:
- dask-mpi: Kreiranjem dask klastera u SGE skripti prije zvanja python programa
- 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 |
---|
language | bash |
---|
title | dask-mpi SGE primjer |
---|
linenumbers | true |
---|
collapse | true |
---|
|
...
# 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 |
---|
language | py |
---|
title | dask-mpi python primjer |
---|
linenumbers | true |
---|
collapse | true |
---|
|
# 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 |
---|
language | bash |
---|
title | initialize SGE primjer |
---|
linenumbers | true |
---|
collapse | true |
---|
|
...
# aktiviraj dask
module load dask
# pokreni python program
mpirun -np $NSLOTS python moj_program.py |
Code Block |
---|
language | py |
---|
title | initialize python primjer |
---|
linenumbers | true |
---|
collapse | true |
---|
|
# 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 |
---|
language | bash |
---|
title | dataframe.sge |
---|
linenumbers | true |
---|
collapse | true |
---|
|
#$ -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 |
...