CI TASK w ramach działu KDM posiada pulę serwerów z akceleratorami GPU NVidia A100 i GPU NVidia H100
Podsumowanie konfiguracji sprzętowej
Karty graficzne są udostępnione na zwirtualizowanych nodach
4 x GPU NVidia H100 80GB per serwer
liczba serwerów: 24
1 x GPU NVidia A100 80GB per serwer
liczba serwerów: 24
8 x GPU NVidia A100 40GB per serwer
liczba serwerów: 2
Organizacja nodów i podział kart może ulec zmianie.
Nazwy nodów z puli A100 40 GB: akiv01-akiv16 (nie wszystkie będą dostępne)
Nazwy nodów z puli A100 80 GB: clgk01-clgk24 (nie wszystkie będą dostępne)
Nazwy nodów z puli H100 80 GB: agj2a... (nie wszystkie będą dostępne)
Środowisko systemowe na nodach jest takie jak na nodach clgk w Trytonie Plus, tj. CentOS 8. Dostępne są wspólne systemy plików /users/kdm i /users/work oraz całe środowisko aplikacji z kompilatorami i bibliotekami Intela (ładowane przez module load ...)
Oprócz tego w systemie jest zainstalowane środowisko sterowników NVidia i środowisko CUDA. Polecenia np. nvcc dostępne bezpośrednio w systemie.
Dostęp
Nody są dostępne w ramach Trytona Plus, w systemie kolejkowym Slurm w następujących partycjach/kolejkach:
- gpu-100
- gpu-a100-80gb
- gpu-h100
Można się od nich dostać z trytonp-ap, zlecając zadania w systemie kolejkowym.
Do celów prac rozwojowych możliwe jest korzystanie z dostępu poprzez interaktywną alokację w Slurmie np.:
[@trytonp-ap ~]$ salloc --time 3:00:00 --partition gpu-a100-80gb --gres=gpu:a100_80gb:1 alloc: Pending job allocation 24970941 salloc: job 24970941 queued and waiting for resources salloc: job 24970941 has been allocated resources salloc: Granted job allocation 24970941 salloc: Waiting for resource configuration salloc: Nodes clgk09 are ready for job
To polecenie tworzy alokację na nodzie, ale nic nie uruchamia. Po utworzeniu alokacji Można się zalogować (wielokrotnie) na przydzielonego noda:
ssh clgk09
W każdej chwili można podejrzeć jakie serwer/y został przydzielony przez system kolejkowy, np. poleceniem:
squeue --me
Specyfikacja --gres (Generic Resource) określa jakie zasoby są wymagane na nodzie, np: --gres=gpu:a100_80gb:1
gdzie:
- gpu - ogólna klasa zasobów
- a100_80gb - wpis określający nasze karty
- 1 - liczba kart w nodzie
Przykład zastosowania