Versions Compared

Key

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

Table of Contents

Na Isabelli su dostupna tri poslužitelja Dell EMC PowerEdge C4140 s po:

...

Instalirani su NVIDIA alati i biblioteke:

  • CUDA (verzije 9.0 i 10.0)
  • cuDNN 7.3.1
  • NCCL 2.3.5.

Pripremljeni su moduli za dostupne verzije CUDA Toolkita koji postavljaju sve CUDA varijable okoline:

89810
VerzijaModul
9.0cuda/9-0
910.0cuda/910-0
10.1cuda/10-1
10.2cuda/10-2
11.0cuda/11-0
11.1cuda/11-1
11.2cuda/11-2
11.3cuda/11-3

Pokretanje poslova

U nastavku je opisano podnošenje tipičnih aplikacija koji koje koriste grafičke procesore. Više informacija o pokretanju poslova možete pronaći na stranici Pokretanje i upravljanje poslovima, a o korištenju pojedinih aplikacija na Korisničke aplikacije i knjižnice.


Note

U svakom opisu posla obavezno treba uključitikoristiti cuda-wrapper.sh, kao u primjerima u nastavku.

...

VerzijaPrevodilacVerzija CUDA-eModul
MVAPICH2.2Intel 20179.0mpi/mvapich2-intel2017-cuda90-2.2-x86_64
MVAPICH2.2Intel 201810.0mpi/mvapich2-intel2018-cuda-2.2-x86_64
MVAPICH2.2Intel 201910.1mpi/mvapich2-intel2019-cuda101-2.2-x86_64
OpenMPI 1.10.7Intel 201910.0mpi/openmpi-intel-cuda-x86_64
OpenMPI 3.0.0Intel 201910.0mpi/openmpi3-intel-cuda-x86_64

U opisu je moguće koristiti sve tri paralelne okolineslučaju korištenja MVAPICH modula:

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

module load <mpi modul>

mvapich-wrapper.sh aplikacija

U slučaju korištenja OpenMPI modula:

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

module load <mpi modul>

openmpi
mpirun -np $NSLOTS cuda-wrapper.sh aplikacija

Korištenje cijelih čvorova s grafičkim procesorima

...

Code Block
#$ -pe gpufull 8

module load <mpi modul>

mpirun -np $NSLOTS cudamvapich-wrapper.sh aplikacija

Korištenje više procesorskih jezgri

...

Code Block
#$ -l cores <broj_jezgri>


Note

U svakom opisu posla obavezno treba koristiti odgovarajući wrapper s obzirom na vrstu posla:

  • cuda-wrapper-nopin.sh - poslovi koji koriste jedan GPU
  • openmpi-wrapper-nopin.sh - poslovi koji koriste više GPU-ova i OpenMPI biblioteku
  • mvapich-wrapper-nopin.sh - poslovi koji koriste više GPU-ova i MVAPICH biblioteku

BITNO:

  • navedeni broj se odnosi na broj procesorskih jezgri po zahtijevanom grafičkom procesoru. Ukoliko korisnički posao zahtijeva 6 grafičkih procesora i 24 procesorske jezgre potrebno je navesti:
Code Block
#$ -pe gpu 6
#$ -l cores=4
 
cudamvapich-wrapper-nopin.sh aplikacija
  • čvorovi raspolažu s 20 procesorskih jezgri pa je to potrebno uzeti u obzir prilikom navodjenja navođenja parametra
  • prilikom korištenja cijelih čvorova nije potrebno navoditi ovaj parametar

Warning

Broj zahtijevanih procesorskih jezgara ograničen je s obzirom na broj traženih grafičkih procesora. Maksimalne vrijednosti dane su u sljedećoj tablici:


Broj grafičkih procesora

Maksimalan broj procesorskih jezgri po grafičkom procesoru

117
29
36

Korištenje scratch diska

Za poslove koji zahtijevaju čest nasumičan pristup podacima na disku, kao što su TensorFlow i PyTorch poslovi, preporuča se korištenje diskova na radnim čvorovima. Općenite upute o korištenju scratch diskova mogu se pronaći na Pokretanje i upravljanje poslovima.

Za svaki korisnički posao automatski se kreira privremeni direktorij na disku na radnom čvoru, do kojeg je putanja spremljena u SGE varijablu okoline $TMPDIR. Primjer prebacivanja podataka na radni čvor:

Code Block
languagebash
titlemoj_posao.sge
#!/bin/bash

#$ -N scratch_1
#$ -cwd
#$ -o output/scratch.out
#$ -j y
#$ -pe gpu 1
#$ -l scratch=100
 
# neka su podaci koje aplikacija koristi spremljeni u $HOME/data/data.tar

mkdir -p $TMPDIR/data
tar xf -C $HOME/data/data.tar $TMPDIR/data/

cuda-wrapper.sh python3.5 moja_aplikacija.py


Warning

Privremeni direktorij na /scratch disku se automatski briše nakon završetka posla. Ukoliko se tokom izvođenja aplikacije generiraju bitni izlazni podaci, potrebno ih je unutar skripte za opis posla kopirati u home direktorij.

Nadzor GPU poslova

Za pregled svih korisničkih poslova koji se izvršavaju na čvorovima s grafičkim procesorima koristi se naredba:

Code Block
$ qstat -u "*" -q gpu.*.q

Ili je moguće koristiti naredbu gpustat koja pruža informaciju o poslovima koji se izvršavaju, na kojim procesorima se izvršavaju te kakvo opterećenje stvaraju:

Code Block
$ gpustat


Za pregled poslova u redu čekanja za radne čvorove s grafičkim procesorima koristi se naredba:

Code Block
$ gpuqw