Versions Compared

Key

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

...

Izvođenje TensorFlow poslova

...

U nastavku je opisano podnošenje tipičnih TensorFlow poslova. Više informacija o pokretanju poslova možete pronaći na stranicama  Korištenje grafičkih procesora te Pokretanje i upravljanje poslovima  a o korištenju pojedinih aplikacija na Korisničke aplikacije i knjižnice.

Korištenje jednog grafičkog procesora:

Code Block
#$ -cwd
#$ -pe gpu 1

module load tensorflow/1-12-0gpu

cuda-wrapper.sh python3.5 moj_program.py

Korištenje više grafičkih procesora na istom čvoru:

Za pokretanje poslova koji zahtijevaju više grafičkih procesora na jednom čvoru potrebno je koristiti paralelnu okolinu gpusingle te željeni broj grafičkih procesora (maksimalno 4)Primjer opisa paralelnog posla koji zahtijeva 4 GPU-a:

Code Block
#$ -cwd
#$ -pe gpugpusingle 4

module load tensorflow/1-12-0gpu

mpirun -np $NSLOTS -bind-to none -mca pml ob1 -mca btl ^openib cuda-wrapper.sh python3.5 moj_program.py

...

Korištenje više grafičkih procesora na više čvorova:

Code Block
  • gpu – općeniti poslovi koji zahtijevaju grafičke procesore
  • gpusingle – svi grafički procesori se dodjeljuju na jednom radnom čvoru
  • gpufull - grafički procesori se dodijeljuju 4 po radnom čvoru (broj grafičkih procesora mora biti djelitelj od 4)

Paralelne okoline se odabiru SGE parametrom:

Code Block
#$ -pe <paralelna okolina>

Više informacija o paralelnim okolinama dostupnim na Isabelli možete pronaći na stranici Redovi poslova i paralelne okoline.

...

#$ -cwd
#$ -pe gpu 6

module load tensorflow/1-12-0gpu

mpirun -np $NSLOTS -bind-to none -mca pml ob1 -mca btl ^openib cuda-wrapper.sh python3.5 moj_program.py

Korištenje cijelih čvorova s grafičkim procesorima

Za pokretanje poslova koji zahtjijevaju cijele čvorove potrebno je koristiti paralelnu okolinu gpufull te željeni broj grafičkih procesora (mora biti djelitelj broja 4). Primjer skripte za zauzimanje dva čvora:

Code Block
#$ -cwd
#$ -pe gpufull 8

module load tensorflow/1-12-0gpu

mpirun -np $NSLOTS -bind-to none -mca pml ob1 -mca btl ^openib cuda-wrapper.sh python3.5 moj_program.py
Code Block
#$ -nprocs <broj_jezgri>

...

Performanse

Performanse paralelnog izvođenja TensorFlow aplikacija korištenjem Horovod biblioteke mjerene su standarnim resnet101 benchmarkom iz službenog TensorFlow benchmark repozitorija.

Slika  1 prikazuje skaliranje performansi s povećanjem broja 1 prikazuje performanse na resnet101 testu u odnosu na broj GPU-ova. Vidljivo je da se s povećanjem broja GPU-ova povećava gubitak u odnosu na maksimalne teoretske performanse, što je i za očekivati. Međutim, čak i za 12 GPU-ova, sustav daje oko 85% idealnog slučaja. Idealne performanse procijenjene su iz rezultata istog benchmarka na jednom grafičkom procesoru, bez korištenja Horovod biblioteke.

...