Unimore HPC Wiki

LYRALOGIN · Architettura

Architettura del cluster HPC LYRALOGIN

Panoramica

Il cluster HPC LYRALOGIN è un'infrastruttura eterogenea gestita tramite il workload manager Slurm 23.02.3.

Sulla base della configurazione dei nodi fornita, l'infrastruttura di calcolo comprende nodi con differenti generazioni di processori Intel Xeon e AMD EPYC, oltre a due nodi GPU dedicati:

Le risorse sono organizzate nelle partizioni Slurm:

L'interconnessione ad alte prestazioni utilizza InfiniBand, con velocità osservate differenti a seconda della famiglia di nodi.

Lo storage condiviso utilizza BeeGFS ed è disponibile attraverso /unimore_home e /scratch.


Sistema operativo

Il sistema operativo rilevato è Rocky Linux 8.4 (Green Obsidian).

NAME="Rocky Linux"
VERSION="8.4 (Green Obsidian)"
ID="rocky"
ID_LIKE="rhel fedora"
VERSION_ID="8.4"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Rocky Linux 8.4 (Green Obsidian)"
ROCKY_SUPPORT_PRODUCT="Rocky Linux"
ROCKY_SUPPORT_PRODUCT_VERSION="8"

Gestione delle risorse con Slurm

LYRALOGIN utilizza:

Slurm 23.02.3

Slurm gestisce l'allocazione delle risorse CPU, memoria e GPU attraverso nodi e partizioni con caratteristiche differenti.

Le partizioni osservate sono:

Partizione Nodi principali Risorsa
3par s3node18 nell'output fornito CPU
s3par s3node[02-24],tnode[01-04],farnode1 CPU
larma farnode4 CPU
long node[01-08] CPU / memoria elevata
fluidp_dgx fpdgx1 NVIDIA A100
gpuh100 gnode03 NVIDIA H100 NVL
debug_gpu gnode03 NVIDIA H100 NVL

Nodi di calcolo CPU

LYRALOGIN contiene più generazioni di processori e non presenta quindi una singola architettura CPU uniforme.

s3node02-s3node20

I nodi di questa famiglia sono configurati con 40 CPU per nodo. L'output lscpu fornito per s3node02 mostra 2 Intel Xeon Gold 6230 @ 2.10 GHz.

Caratteristiche principali

Architecture:        x86_64
CPU(s):              40
Thread(s) per core:  1
Core(s) per socket:  20
Socket(s):           2
NUMA node(s):        2
Vendor ID:           GenuineIntel
Model name:          Intel(R) Xeon(R) Gold 6230 CPU @ 2.10GHz

Topologia CPU

Nodo s3node (40 core)
|
+-- Socket 0 - Intel Xeon Gold 6230
|   +-- 20 core fisici
|
+-- Socket 1 - Intel Xeon Gold 6230
    +-- 20 core fisici

Totale: 40 core / 40 CPU logiche
NUMA node: 2
Thread per core: 1

s3node21-s3node24

Questi nodi hanno una configurazione differente, con 52 core per nodo. L'output di s3node21 identifica il processore come Intel Xeon Gold 6230R @ 2.10 GHz.

Architecture:        x86_64
CPU(s):              52
Thread(s) per core:  1
Core(s) per socket:  26
Socket(s):           2
NUMA node(s):        2
Model name:          Intel(R) Xeon(R) Gold 6230R CPU @ 2.10GHz

tnode01-tnode04

L'output fornito per tnode02 mostra la stessa architettura CPU Intel Xeon Gold 6230 osservata sui nodi s3node a 40 core.

farnode1 e farnode4

Entrambi sono configurati in Slurm con:

CPUs=40
Sockets=2
CoresPerSocket=20
RealMemory=385000

L'output lscpu fornito per farnode1 identifica:

Intel(R) Xeon(R) Gold 6230 CPU @ 2.10GHz

con 40 core, 2 socket, 20 core per socket, 1 thread per core e 2 NUMA node.

Il modello CPU di farnode4 non è stato misurato direttamente nei dati forniti e non viene quindi assunto automaticamente uguale a quello di farnode1.

node01-node08

L'output di riferimento fornito per node03 mostra 2 Intel Xeon Gold 5320 @ 2.20 GHz.

Architecture:        x86_64
CPU(s):              52
Thread(s) per core:  1
Core(s) per socket:  26
Socket(s):           2
NUMA node(s):        2
Model name:          Intel(R) Xeon(R) Gold 5320 CPU @ 2.20GHz

Nodi GPU

fpdgx1 - NVIDIA A100

Il nodo fpdgx1 combina processori AMD EPYC con 8 GPU NVIDIA A100-PCIE-40GB.

CPU

CPU(s):              128
Thread(s) per core:  1
Core(s) per socket:  64
Socket(s):           2
NUMA node(s):        2
Vendor ID:           AuthenticAMD
Model name:          AMD EPYC 7702 64-Core Processor

GPU

La configurazione Slurm riporta:

Gres=gpu:a100:8

nvidia-smi -L identifica otto dispositivi:

GPU 0: NVIDIA A100-PCIE-40GB
GPU 1: NVIDIA A100-PCIE-40GB
GPU 2: NVIDIA A100-PCIE-40GB
GPU 3: NVIDIA A100-PCIE-40GB
GPU 4: NVIDIA A100-PCIE-40GB
GPU 5: NVIDIA A100-PCIE-40GB
GPU 6: NVIDIA A100-PCIE-40GB
GPU 7: NVIDIA A100-PCIE-40GB

Sono quindi presenti 8 GPU NVIDIA A100 PCIe da 40 GB, pari a 320 GB nominali di memoria GPU complessivamente installata.

Schema del nodo

fpdgx1
|
+-- Socket 0 - AMD EPYC 7702 - 64 core
+-- Socket 1 - AMD EPYC 7702 - 64 core
|
+-- 128 core CPU totali
|
+-- GPU 0 - NVIDIA A100 PCIe 40 GB
+-- GPU 1 - NVIDIA A100 PCIe 40 GB
+-- GPU 2 - NVIDIA A100 PCIe 40 GB
+-- GPU 3 - NVIDIA A100 PCIe 40 GB
+-- GPU 4 - NVIDIA A100 PCIe 40 GB
+-- GPU 5 - NVIDIA A100 PCIe 40 GB
+-- GPU 6 - NVIDIA A100 PCIe 40 GB
+-- GPU 7 - NVIDIA A100 PCIe 40 GB
|
+-- InfiniBand 40 Gb/s FDR10

gnode03 - NVIDIA H100 NVL

Il nodo gnode03 utilizza 2 AMD EPYC 9654 da 96 core e ospita 8 GPU NVIDIA H100 NVL.

CPU

CPU(s):              192
Thread(s) per core:  1
Core(s) per socket:  96
Socket(s):           2
NUMA node(s):        2
Vendor ID:           AuthenticAMD
Model name:          AMD EPYC 9654 96-Core Processor

GPU

Slurm riporta:

Gres=gpu:h100:8

nvidia-smi -L identifica:

GPU 0: NVIDIA H100 NVL
GPU 1: NVIDIA H100 NVL
GPU 2: NVIDIA H100 NVL
GPU 3: NVIDIA H100 NVL
GPU 4: NVIDIA H100 NVL
GPU 5: NVIDIA H100 NVL
GPU 6: NVIDIA H100 NVL
GPU 7: NVIDIA H100 NVL

Sono quindi presenti 8 GPU NVIDIA H100 NVL.

La quantità di memoria per singola H100, il driver NVIDIA, la versione CUDA riportata da nvidia-smi e l'eventuale configurazione MIG non sono stati forniti e non vengono assunti in questo documento.

Schema del nodo

gnode03
|
+-- Socket 0 - AMD EPYC 9654 - 96 core
+-- Socket 1 - AMD EPYC 9654 - 96 core
|
+-- 192 core CPU totali
|
+-- GPU 0 - NVIDIA H100 NVL
+-- GPU 1 - NVIDIA H100 NVL
+-- GPU 2 - NVIDIA H100 NVL
+-- GPU 3 - NVIDIA H100 NVL
+-- GPU 4 - NVIDIA H100 NVL
+-- GPU 5 - NVIDIA H100 NVL
+-- GPU 6 - NVIDIA H100 NVL
+-- GPU 7 - NVIDIA H100 NVL
|
+-- InfiniBand 40 Gb/s

Rete di interconnessione InfiniBand

LYRALOGIN utilizza una rete InfiniBand, ma la velocità osservata non è uniforme per tutti i nodi campionati.

Nodo CPU s3node02

CA 'mlx5_0'
CA type: MT4115
Number of ports: 1
Firmware version: 12.28.2006
Port 1:
    State: Active
    Physical state: LinkUp
    Rate: 56
    SM lid: 4
    Link layer: InfiniBand

Caratteristiche:

Nodo GPU fpdgx1

CA 'mlx5_0'
CA type: MT4115
Number of ports: 1
Firmware version: 12.28.2006
Port 1:
    State: Active
    Physical state: LinkUp
    Rate: 40 (FDR10)
    SM lid: 4
    Link layer: InfiniBand

Caratteristiche:

Nodo GPU gnode03

CA 'mlx5_0'
CA type: MT4123
Number of ports: 1
Firmware version: 20.43.2566
Port 1:
    State: Active
    Physical state: LinkUp
    Rate: 40
    SM lid: 4
    Link layer: InfiniBand

Caratteristiche:

Le velocità indicate sono quelle osservate negli output ibstat forniti per i nodi campionati e non vengono estese automaticamente a nodi per i quali non è stato fornito un output ibstat.


Storage condiviso BeeGFS

LYRALOGIN utilizza BeeGFS per lo storage condiviso.

Sono stati forniti due filesystem:

Filesystem Tipo Mount point Capacità Utilizzato Disponibile Utilizzo
beegfs_safe BeeGFS /unimore_home 280 TB 214 TB 67 TB 77%
beegfs_unsafe BeeGFS /scratch 70 TB 58 TB 13 TB 83%

/unimore_home

beegfs_safe  beegfs  280T  214T  67T  77%  /unimore_home

/scratch

beegfs_unsafe  beegfs  70T  58T  13T  83%  /scratch

I valori riportati rappresentano lo stato dello storage nell'output fornito.


Schema logico dell'architettura

                         Utenti
                           |
                           v
                  +------------------+
                  |    LYRALOGIN     |
                  +------------------+
                           |
                           v
                  +------------------+
                  |   Slurm 23.02.3  |
                  +------------------+
                           |
        +------------------+-------------------+
        |                  |                   |
        v                  v                   v
+----------------+ +----------------+ +----------------------+
| Nodi CPU       | | Nodi GPU       | | Storage BeeGFS       |
+----------------+ +----------------+ +----------------------+
|                | |                | |                      |
| s3node02-20    | | fpdgx1         | | /unimore_home        |
| 40 core        | | 128 core AMD   | | beegfs_safe          |
| Xeon 6230 (*)  | | 8 x A100 40GB  | | 280 TB               |
|                | | IB 40 FDR10    | |                      |
| s3node21-24    | |                | | /scratch             |
| 52 core        | | gnode03        | | beegfs_unsafe        |
| Xeon 6230R (*) | | 192 core AMD   | | 70 TB                |
|                | | 8 x H100 NVL   | |                      |
| tnode01-04     | | IB 40 Gb/s     | +----------------------+
| 40 core        | +----------------+
| Xeon 6230 (*)  |
|                |
| farnode1/4     |
| 40 core        |
|                |
| node01-08      |
| 52 core        |
| Xeon 5320 (*)  |
+----------------+
        |
        +---------------------+
                              |
                              v
                    +--------------------+
                    | InfiniBand         |
                    |                    |
                    | s3node02: 56 Gb/s |
                    | fpdgx1: 40 FDR10  |
                    | gnode03: 40 Gb/s  |
                    +--------------------+

Partizioni Slurm
|
+-- 3par
+-- s3par ----------- s3node / tnode / farnode1
+-- larma ----------- farnode4
+-- long ------------ node01-08
+-- fluidp_dgx ------ fpdgx1 / NVIDIA A100
+-- gpuh100 --------- gnode03 / NVIDIA H100 NVL
+-- debug_gpu ------- gnode03 / NVIDIA H100 NVL

(*) Il modello CPU è quello verificato sugli specifici nodi campionati
    indicati nel documento.

Tabella riepilogativa delle risorse

Famiglia / nodo Quantità dalla configurazione fornita CPU Core/CPU Slurm per nodo Socket RAM Slurm per nodo GPU InfiniBand osservata
s3node02-20 19 Intel Xeon Gold 6230 (*) 40 2 385000 MB - 56 Gb/s su s3node02
s3node21-24 4 Intel Xeon Gold 6230R (*) 52 2 385000 MB - Non misurata nei dati forniti
tnode01-03 3 Intel Xeon Gold 6230 (*) 40 2 385000 MB - Non misurata nei dati forniti
tnode04 1 Famiglia non verificata direttamente 40 2 335000 MB - Non misurata nei dati forniti
farnode1 1 Intel Xeon Gold 6230 40 2 385000 MB - Non misurata nei dati forniti
farnode4 1 Non verificata direttamente 40 2 385000 MB - Non misurata nei dati forniti
node01-07 7 Intel Xeon Gold 5320 (*) 52 2 998000 MB - Non misurata nei dati forniti
node08 1 Famiglia non verificata direttamente 52 2 447000 MB - Non misurata nei dati forniti
fpdgx1 1 AMD EPYC 7702 128 2 1940000 MB 8 x NVIDIA A100 PCIe 40 GB 40 Gb/s FDR10
gnode03 1 AMD EPYC 9654 192 2 1500000 MB 8 x NVIDIA H100 NVL 40 Gb/s

(*) Il modello CPU è stato verificato su un nodo campione della famiglia: s3node02, s3node21, tnode02 e node03 rispettivamente. La configurazione Slurm fornita stabilisce il numero di CPU/socket/core per gli altri nodi dell'intervallo, ma non ne dimostra da sola il modello fisico del processore.


Riepilogo tecnico

Componente Configurazione verificata dai dati forniti
Sistema operativo Rocky Linux 8.4 (Green Obsidian)
Workload manager Slurm 23.02.3
Architettura x86_64
CPU Intel osservate Xeon Gold 6230, Xeon Gold 6230R, Xeon Gold 5320
CPU AMD osservate EPYC 7702, EPYC 9654
Hyper-Threading / SMT nei campioni 1 thread per core
NUMA nei campioni 2 NUMA node
Nodo A100 fpdgx1
GPU A100 8 x NVIDIA A100-PCIE-40GB
Memoria GPU A100 installata 320 GB nominali complessivi
Nodo H100 gnode03
GPU H100 8 x NVIDIA H100 NVL
Interconnessione InfiniBand
IB CPU campionata 56 Gb/s su s3node02
IB A100 40 Gb/s FDR10 su fpdgx1
IB H100 40 Gb/s su gnode03
Storage condiviso BeeGFS
Home condivisa /unimore_home, 280 TB
Scratch condiviso /scratch, 70 TB
Partizioni osservate 3par, s3par, larma, long, fluidp_dgx, gpuh100, debug_gpu

Comandi utili per verificare l'architettura

Sistema operativo

cat /etc/os-release

Versione Slurm

sinfo --version

CPU e NUMA

lscpu

GPU

nvidia-smi
nvidia-smi -L

InfiniBand

ibstat

Storage condiviso

df -hT

Configurazione dei nodi Slurm

scontrol show nodes

Configurazione delle partizioni Slurm

scontrol show partition