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:

VerzijaModul
9.0cuda/9-0
10.0cuda/10-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 koristiti cuda-wrapper.sh, kao u primjerima u nastavku.

Korištenje jednog grafičkog procesora

...

Korištenje više grafičkih procesora na više čvorova moguće je pomoću knjižnica MPI moduli prevednih prevedenih s podrškom za CUDA-u:

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>

openmpimpirun -np $NSLOTS cuda-wrapper.sh aplikacija

Korištenje cijelih čvorova s grafičkim procesorima

Za pokretanje poslova koji zahtjijevaju zahtijevaju 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
#$ -pe gpufull 8

mpirunmodule -npload $NSLOTS cuda<mpi modul>

mvapich-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