Horovod

Pokiaľ potrebujete použiť machine learning model cez viacero nódov a využiť tak viacero GPU, jednou z možností je horovod.

Horovod je open source softvér pre distribuovaný deep learning tréning pomocou Tensorflow, Keras, PyTorch a Apache MXNET. Jeho cieľom je zlepšenie rýchlosti, škálovateľnosti a alokácie zdrojov pre potreby trénovania machine learning modelov.

Použitie

Ak chcete použiť horovod na výpočtovom klastri v Košiciach, je potrebné si najprv upraviť váš python zdrojový kód podľa inštrukcií na https://github.com/horovod/horovod#usage. Na košickom klastri je Horovod nainštalovaný s podporou OpenMPI, spúšťa sa podobne ako ostatné MPI aplikácie. Horovod sa automaticky snaží spustiť jeden viacvláknový proces na výpočtový nód.

Príklad pre tensorflow nájdete v /lustre/home/freeware/EXAMPLE_JOBS/horovod. Spúšťací skript pre slurm je run.sh. Vyžiada dva nódy, celkovo dva procesy a jeden proces na nód, požiada iba o nódy s grafickou kartou k20m:

#—-run.sh—-
#!/bin/bash
#SBATCH –partition=short
#SBATCH –job-name=test
#SBATCH –output=out.txt
#SBATCH –error=err.txt
#SBATCH –nodes=2
#SBATCH –ntasks=2
#SBATCH –ntasks-per-node=1
#SBATCH –time=30:00
#SBATCH –constraint=k20m
mpirun python3 test_keras.py

Horovod je možné okrem OpenMPI použiť aj s  mpi4py alebo singularity kontajnermi. Kompletnú dokumentáciu nájdete na https://github.com/horovod/horovod.