Maszyny obliczeniowe w ICM
Poniżej przedstawiamy zestawienie i krótką charakterystykę maszyn obliczeniowych ICM. Po zalogowaniu się przez ssh na węzeł dostępowy (hpc.icm.edu.pl) można ponownie użyć ssh do zalogowania się na kolejną maszynę (np. Okeanos, Rysy), niedostępna zza firewalla. Po zalogowaniu na węzeł dostępowy hpc.icm.edu.pl może występować on pod nazwą hpc.
Info
Zlecanie zadań na system topola
możliwe jest bezpośrednio z węzła dostępowego hpc.icm.edu.pl
.
W przypadku pozostałych systemów możliwy/wymagany jest dodatkowy krok logowania wykonany z komputera
hpc.icm.edu.pl, np. ssh rysy
, ssh okeanos
.
Nazwa | Typ | Architektura | Liczba i nazwa węzłów obliczeniowych | Parametry węzła obliczeniowego |
---|---|---|---|---|
Okeanos | Superkomputer | Intel Haswell Cray XC40 | 1084 | 24 rdzenie, 128 GB pamięci RAM |
Topola | Klaster HPC, Klaster PL-Grid | Intel Haswell Huawei E9000 | 223 | 28 rdzeni, 64 lub 128 GB pamięci RAM |
Rysy/GPU | Klaster GPU, | Intel Skylake, NVIDIA Volta | 6 | 36 rdzenie, 380 GB pamięci RAM, 4x GPU V100 32GB |
Rysy/GPU | Klaster GPU, | Intel Skylake, NVIDIA Volta | 1 | 48 rdzeni, 1500 GB pamięci RAM, 8x GPU V100 16GB |
Rysy/GPU | Klaster GPU, | Intel Haswell, NVIDIA Titan X (Pascal) | 1 | 24 rdzeni, 760 GB pamięci RAM, 8x GPU Titan X (Pascal) 12GB |
Rysy/PBaran | Komputer wektorowy, NEC Aurora A300-8 | Intel Skylake, NEC SX-Aurora Tsubasa | 1 | 24 rdzenie, 192 GB RAM / 8 x 8 rdzeni, 8 x 48 GB RAM |
Superkomputer Okeanos
Z początkiem lipca 2016 roku ICM UW udostępnił naukowcom superkomputer Okeanos – system wielkoskalowego przetwarzania Cray XC40. Okeanos zbudowany jest z ponad 1000 węzłów obliczeniowych, z których każdy zawiera dwa 12-rdzeniowe procesory Intel Xeon Haswell oraz 128 GB pamięci RAM. Wszystkie węzły systemu połączone są ultraskalowalną siecią Cray Aries o topologii Dragonfly.
Odpowiadając na wymagania technologiczne ICM, firma Cray Inc. zbudowała system będący unikatowym rozwiązaniem w dziedzinie HPC w skali kraju. System wyróżnia wysoka moc i skalowalność obliczeniowa, a także wysoka wydajność przetwarzania danych grafowych. Okeanos najlepiej sprawdza się w obliczeniach wielkoskalowych, które w pojedynczym przebiegu wymagają zastosowania kilku tysięcy rdzeni obliczeniowych oraz kilkudziesięciu terabajtów pamięci operacyjnej. Realizacja tego typu obliczeń jest jego głównym przeznaczeniem.
System Okeanos razem z systemami analityki i przechowywania dużych danych to główne części składowe infrastruktury Centrum Kompetencji OCEAN, zainstalowanej w nowej serwerowni ICM na warszawskiej Białołęce.
Szczegółowy opis superkomputera Okeanos
Instalacja: Cray XC40
Nazwa: Okeanos
Typ procesora: Intel Xeon E5-2690 v3
Architektura: x86_64
Reprezencja danych: little-endian
Częstotliwość taktowania: 2.6 GHz
Liczba procesorów w węźle: 2 x 12 rdzenie (Hyperthreading x2)
Sockets - Cores - Threads: 2-12-2
Ilość pamięci w węźle: 128 GB
System plików: Lustre (rozproszony system plików)
System operacyjny: SUSE Linux Enterprise Server 15
System kolejkowy: slurm 20.11.9
Superkomputer Topola
Szczegółowy opis superkomputera Topola
Instalacja: Klaster
Nazwa: Topola
Typ procesora: Intel(R) Xeon(R) CPU E5-2650 v3
Architektura: x86_64
Reprezencja danych: little-endian
Częstotliwość taktowania: 2.0 - 3.1GHz
Liczba procesorów w węźle: 28 rdzeni
Sockets - Cores - Threads: 2-14-1
Ilość pamięci w węźle: 64/128 GB
System plików: NFS/lustre/ext4
System operacyjny: CentOS 7
System kolejkowy: slurm 20.11.9
Opis węzłów klastra Topola
Model CPU | Taktowanie CPU | Sockets: Cores: Threads | RAM | Liczba węzłów | Nazwa |
---|---|---|---|---|---|
Intel(R) Xeon(R) CPU E5-2697 v3 | 2.1GHz - 3.0GHz | 2:14:1 | 128 GB | 60 | t1-[1-12], t[13-15]-[1-16] |
Intel(R) Xeon(R) CPU E5-2697 v3 | 2.1GHz - 3.0GHz | 2:14:1 | 64 GB | 163 | t1-[13-16], t[2-12]-[1-16] |
Węzły topoli różnią się tylko wielkością pamięci RAM. System kolejkowy automatycznie dobierze typ węzła w zależności od zapotrzebowania na pamięć podaną przez użytkownika
Superkomputer Rysy
Szczegółowy opis superkomputera Rysy
Instalacja: Klaster
Nazwa: Rysy
Typ procesora: Intel(R) Xeon(R) Gold 6154/6252 CPU
Architektura: x86_64
Reprezencja danych: little-endian
Częstotliwość taktowania: 2.1/3.0 - 3.7GHz
Liczba procesorów w węźle: 36 rdzeni
Sockets - Cores - Threads: 2-18-1
Ilość pamięci w węźle: 380/1500 GB
System plików: lustre/NVMe-oF
GPU: NVIDIA Tesla V100 16/32GB
System operacyjny: CentOS 7
System kolejkowy: slurm 23.02.2
Opis węzłów klastra Rysy
Model CPU | Taktowanie CPU | Sockets: Cores: Threads | RAM | GPU | Liczba węzłów | Nazwa |
---|---|---|---|---|---|---|
Intel(R) Xeon(R) Gold 6252 | 3.0GHz - 3.7GHz | 2:18:1 | 380 GB | 4x NVIDIA Tesla V100 32GB | 6 | rysy-n[1-6] |
Intel(R) Xeon(R) Gold 6154 | 2.1GHz - 3.7GHz | 2:24:1 | 1500 GB | 8x NVIDIA Tesla V100 16GB | 1 | rysy-n7 |
Intel(R) Xeon(R) E5-2670 v3 | 2.3GHz - 3.1GHz | 2:12:1 | 760 GB | 8x NVIDIA TITAN X (Pascal) 12GB | 1 | rysy-n9 |
Intel(R) Xeon(R) Gold 6126 | 2.6GHz - 3.7GHz | 2:12:1 | 192 GB | 8x NEC Vector Engine Type 10B 48GB | 1 | pbaran |
Jak uruchomić zadanie na konkretnym węźle?
sinfo -o "%20N %10c %10m %25f %50G"
NODELIST CPUS MEMORY AVAIL_FEATURES GRES
rysy-n5 36 380000 skylake,volta,volta32G gpu:volta:3(S:0-1),nvme:3500
rysy-n9 24 760000 haswell,titan gpu:titan:8(S:0),cpuonly:12(S:1)
rysy-n7 48 1500000 cascadelake,volta,volta16 gpu:volta:8(S:0),cpuonly:24(S:1),nvme:6100
rysy-n[1-4,6] 36 380000 skylake,volta,volta32G gpu:volta:4(S:0-1),nvme:3500
pbaran 24 190000 skylake,vector ve:vector:8(S:0)
nextsilicon-n3 16 120000 nextsilicon (null)
nextsilicon-n[1-2] 24 120000 nextsiliconHW (null)
Aby uruchomić zadania na węźle spełniającym określone kryteria można:
- podać jawnie nazwę węzła, np
--nodelist=rysy-n7
- podać wymagania jakie musi spełniać węzeł na którym chcemy uruchomić zadanie, np
--constraint=volta32G
Przykładowo:
$ srun -N1 -n4 --mem=120G --account=app-installers --gres=gpu:2 --constraint=volta32G --time=01:00:00 --pty /bin/bash
$ hostname
rysy-n1.icm.edu.pl
$ echo $SLURM_MEM_PER_NODE
122880
$ nvidia-smi
Mon Jul 17 09:27:19 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 530.30.02 Driver Version: 530.30.02 CUDA Version: 12.1 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 Tesla V100-PCIE-32GB Off| 00000000:3B:00.0 Off | 0 |
| N/A 42C P0 29W / 250W| 0MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
| 1 Tesla V100-PCIE-32GB Off| 00000000:5E:00.0 Off | 0 |
| N/A 38C P0 30W / 250W| 0MiB / 32768MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| No running processes found |
+---------------------------------------------------------------------------------------+
deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "Tesla V100-PCIE-32GB"
CUDA Driver Version / Runtime Version 11.5 / 11.4
CUDA Capability Major/Minor version number: 7.0
Total amount of global memory: 32510 MBytes (34089730048 bytes)
(080) Multiprocessors, (064) CUDA Cores/MP: 5120 CUDA Cores
GPU Max Clock rate: 1380 MHz (1.38 GHz)
Memory Clock rate: 877 Mhz
Memory Bus Width: 4096-bit
L2 Cache Size: 6291456 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total shared memory per multiprocessor: 98304 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 7 copy engine(s)
Run time limit on kernels: No
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Enabled
Device supports Unified Addressing (UVA): Yes
Device supports Managed Memory: Yes
Device supports Compute Preemption: Yes
Supports Cooperative Kernel Launch: Yes
Supports MultiDevice Co-op Kernel Launch: Yes
Device PCI Domain ID / Bus ID / location ID: 0 / 134 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 11.5, CUDA Runtime Version = 11.4, NumDevs = 1
Result = PASS
Dyski NVMe-oF
Na superkomputerze Rysy, na węzlach z GPU dostepne sa dyski NVMe-oF.
Aby z nich skorzystać należy dodać opcje --gres=nvme:SIZE
do parametrow zadania.
Wtedy slurm utworzy katalog tymczasowy /scratch/${SLURM_JOBID}
z quotą SIZE GB.
Katalog będzie dostępny z węzła obliczeniowego na którym uruchomione jest zadanie i zostanie usuniety po ukończeniu zadania.
Po zakończeniu zadania katalog zostanie usuniety.
Możliwa jest (łączna) alokacja do 3500 GB na węzłach rysy-n[1-6] i 6100 GB na węźle rysy-n7.
Informacje o systemie (hardware)
Poniższe komendy slurm'a pozwalają na samodzielne sprawdzenie informacji o systemie:
scontrol show partition <nazwa_partycji> # właściwości partycji
scontrol show node <nazwa_węzła> # właściwości węzła
cat /etc/os-release # informacje o systemie operacyjnym
df -Th # informacje o systemie plików
lscpu # informacja o architekturze cpu (warto wykonać te komendę na węźle obliczeniowym)
sinfo -l -N # lista węzłów
sinfo -l -N | awk '{printf ("%1s %15s %15s %15s %10s %10s \n", $1, $2, $3, $5, $6, $7)}' # formatowanie kolumn
smap -i 2 # quasi-graficzna informacja o wykorzystaniu węzłów