Partizioni Slurm del cluster LYRALOGIN
Panoramica
Il cluster LYRALOGIN utilizza Slurm per la gestione e la schedulazione delle risorse di calcolo.
Le risorse sono organizzate in diverse partizioni Slurm, ciascuna associata a specifici nodi, risorse CPU e GPU, QoS e restrizioni di accesso.
Lo stato corrente delle partizioni può essere visualizzato con:
sinfo
Nell'output fornito compaiono le seguenti partizioni:
3pars3parlarmalongfluidp_dgxgpuh100debug_gpu
La partizione contrassegnata con * nell'output di sinfo è la partizione predefinita. Nell'output fornito compare:
long*
Pertanto, secondo lo stato restituito da sinfo, la partizione predefinita attiva è long.
Nota di configurazione: nelle righe
PartitionNamefornite, sias3parsialarmariportanoDefault=YES, mentresinfocontrassegna con*soltantolong. È quindi opportuno verificare la configurazione effettivamente caricata dal controller conscontrol show partitione confrontarla con il fileslurm.confin uso.
Riepilogo delle partizioni
| Partizione | Default da sinfo |
Nodi configurati o osservati | MaxTime | QoS / AllowQos | Account autorizzati | Risorse principali |
|---|---|---|---|---|---|---|
3par |
No | s3node18 |
INFINITE |
Non specificato | Non specificato | CPU |
s3par |
No | s3node[02-24],tnode[01-04],farnode1 |
INFINITE |
normal, long |
Non specificato | CPU |
larma |
No | farnode4 |
INFINITE |
larma |
abg |
CPU |
long |
Sì | node[01-08] |
INFINITE |
normal, long |
Non specificato | CPU, nodi ad alta memoria |
fluidp_dgx |
No | fpdgx1 |
INFINITE |
Non specificato | Non specificato | 8 GPU NVIDIA A100 |
gpuh100 |
No | gnode03 |
INFINITE da sinfo |
Non specificato | Non specificato | 8 GPU NVIDIA H100 |
debug_gpu |
No | gnode03 |
1-00:00:00 |
Non specificato | Non specificato | 8 GPU NVIDIA H100 condivise con gpuh100 |
Le informazioni di
gpuh100,debug_gpue3parprovengono dall'output disinfo, poiché nelle righePartitionNamefornite non compare la loro configurazione completa.
Architettura dei nodi
Nodi della famiglia s3node
I nodi s3node02–s3node20 dispongono di:
CPUs=40
Sockets=2
CoresPerSocket=20
RealMemory=385000
I nodi s3node21–s3node24 dispongono di:
CPUs=52
Sockets=2
CoresPerSocket=26
RealMemory=385000
Nodi tnode
I nodi tnode01–tnode03 dispongono di:
CPUs=40
Sockets=2
CoresPerSocket=20
RealMemory=385000
Il nodo tnode04 dispone di:
CPUs=40
Sockets=2
CoresPerSocket=20
RealMemory=335000
Nodi della partizione long
I nodi node01–node07 dispongono di:
CPUs=52
Sockets=2
CoresPerSocket=26
RealMemory=998000
Il nodo node08 dispone di:
CPUs=52
Sockets=2
CoresPerSocket=26
RealMemory=447000
Nodi dedicati
farnode1 e farnode4 dispongono di:
CPUs=40
Sockets=2
CoresPerSocket=20
RealMemory=385000
Nodi GPU
Il nodo fpdgx1 dispone di:
CPUs=128
Sockets=2
CoresPerSocket=64
RealMemory=1940000
Gres=gpu:a100:8
Il nodo gnode03 dispone di:
CPUs=192
Sockets=2
CoresPerSocket=96
RealMemory=1500000
Gres=gpu:h100:8
Informazioni sulle partizioni
3par
Nell'output di sinfo, 3par contiene il nodo:
s3node18
Lo stato osservato è:
down*
Il simbolo * associato allo stato indica che il nodo non risponde al controller o si trova in una condizione che richiede verifica amministrativa. La configurazione completa PartitionName=3par non è presente nei dati forniti.
s3par
s3par è la principale partizione CPU comprendente nodi delle famiglie s3node, tnode e il nodo farnode1.
Nodi
s3node[02-24],tnode[01-04],farnode1
QoS ammesse
AllowQos=normal,long
Le QoS ammesse sono quindi:
normallong
Tempo massimo
MaxTime=INFINITE
Stati osservati
Nell'output di sinfo, i nodi di s3par risultano distribuiti tra:
mixallocidle
La configurazione fornita riporta:
Default=YES
ma sinfo non mostra s3par*. Fa fede la configurazione effettivamente caricata da Slurm, verificabile con scontrol show partition s3par.
larma
La partizione larma è associata al nodo:
farnode4
Account autorizzato
AllowAccounts=abg
La partizione è quindi riservata all'account Slurm abg.
QoS ammessa
AllowQos=larma
Tempo massimo
MaxTime=INFINITE
Stato osservato
idle
Anche per larma, la configurazione fornita riporta Default=YES, ma sinfo non mostra larma*.
long
long è la partizione predefinita secondo l'output di sinfo:
long*
Nodi
node[01-08]
I nodi node01–node07 dispongono di circa 998000 MB di memoria reale configurata, mentre node08 dispone di 447000 MB.
QoS ammesse
AllowQos=normal,long
Tempo massimo
MaxTime=INFINITE
Stati osservati
Nell'output fornito sono presenti:
- 4 nodi
alloc:node01,node05,node06,node07 - 4 nodi
idle:node02,node03,node04,node08
Partizioni GPU
fluidp_dgx
La partizione fluidp_dgx utilizza il nodo:
fpdgx1
Risorse del nodo
CPUs=128
RealMemory=1940000
Gres=gpu:a100:8
Il nodo espone quindi otto GPU A100 tramite il GRES Slurm:
gpu:a100:8
Tempo massimo
MaxTime=INFINITE
Partizione predefinita
Default=NO
Stato osservato
Nell'output di sinfo, il nodo risulta:
down
gpuh100
La partizione gpuh100 utilizza il nodo:
gnode03
Risorse del nodo
CPUs=192
RealMemory=1500000
Gres=gpu:h100:8
Il nodo espone otto GPU H100:
gpu:h100:8
Tempo massimo osservato
INFINITE
Stato osservato
mix
La configurazione completa PartitionName=gpuh100 non è presente nei dati forniti.
debug_gpu
La partizione debug_gpu utilizza anch'essa:
gnode03
È destinata a job GPU di durata limitata.
Tempo massimo
1-00:00:00
ovvero 1 giorno.
Stato osservato
mix
La configurazione completa PartitionName=debug_gpu non è presente nei dati forniti.
Significato dei principali parametri
PartitionName
Nome con cui la partizione viene identificata da Slurm.
PartitionName=s3par
Nodes
Definisce i nodi appartenenti alla partizione.
Nodes=s3node[02-24],tnode[01-04],farnode1
Default
Indica se la partizione è quella utilizzata quando un job viene inviato senza specificare --partition.
Default=YES
La partizione effettivamente predefinita è contrassegnata da * nell'output di sinfo.
MaxTime
Definisce il tempo massimo consentito per un job nella partizione.
MaxTime=INFINITE
indica che la partizione non impone uno specifico limite massimo di tempo a questo livello di configurazione. Restano comunque applicabili eventuali limiti definiti nelle QoS o nelle associazioni Slurm.
Il valore:
1-00:00:00
corrisponde a un giorno.
AllowAccounts
Definisce gli account Slurm autorizzati a utilizzare la partizione.
AllowAccounts=abg
Nella configurazione fornita, questa restrizione è associata a larma.
AllowQos
Elenca le QoS ammesse nella partizione.
AllowQos=normal,long
oppure:
AllowQos=larma
Gres
Descrive le risorse generiche gestite da Slurm, come le GPU.
Gres=gpu:a100:8
indica otto GPU A100, mentre:
Gres=gpu:h100:8
indica otto GPU H100.
State
Indica se la partizione è amministrativamente attiva.
State=UP
Lo stato UP della partizione non implica che tutti i nodi siano disponibili: i singoli nodi possono risultare idle, mix, alloc, down o in altri stati.
Stato corrente delle partizioni
L'output fornito contiene i seguenti stati:
| Stato | Significato operativo |
|---|---|
idle |
Nodo disponibile e senza job allocati |
alloc |
Nodo interamente allocato |
mix |
Nodo parzialmente allocato |
down |
Nodo non disponibile per l'esecuzione dei job |
down* |
Nodo non disponibile e non rispondente o non registrato correttamente presso il controller |
Lo stato corrente può essere verificato con:
sinfo
Per mostrare anche partizione, stato, CPU e memoria dei nodi:
sinfo -N -l
Utilizzo di una partizione
Una partizione può essere selezionata in uno script Slurm con:
#SBATCH --partition=<nome_partizione>
Esempio CPU sulla partizione s3par
#!/bin/bash -l
#SBATCH --job-name=test_cpu
#SBATCH --partition=s3par
#SBATCH --qos=normal
#SBATCH --time=01:00:00
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
./programma
Esempio sulla partizione long
#!/bin/bash -l
#SBATCH --job-name=test_long
#SBATCH --partition=long
#SBATCH --qos=long
#SBATCH --time=2-00:00:00
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=8
./programma
Esempio GPU A100
#!/bin/bash -l
#SBATCH --job-name=test_a100
#SBATCH --partition=fluidp_dgx
#SBATCH --gres=gpu:a100:1
#SBATCH --time=01:00:00
nvidia-smi
./programma_gpu
Esempio GPU H100
#!/bin/bash -l
#SBATCH --job-name=test_h100
#SBATCH --partition=gpuh100
#SBATCH --gres=gpu:h100:1
#SBATCH --time=01:00:00
nvidia-smi
./programma_gpu
La combinazione di partizione, account, QoS e GRES deve rispettare la configurazione Slurm effettivamente caricata e le associazioni dell'utente.
Comandi utili
Visualizzare le partizioni
sinfo
Visualizzare i nodi
sinfo -N -l
Visualizzare tutte le configurazioni delle partizioni
scontrol show partition
Visualizzare una singola partizione
scontrol show partition s3par
Controllare la partizione predefinita effettiva
scontrol show partition | grep -E 'PartitionName=|Default='
Visualizzare la configurazione di un nodo GPU
scontrol show node fpdgx1
scontrol show node gnode03
Specificare una partizione con sbatch
sbatch --partition=s3par job.sh
Specificare partizione e QoS
sbatch --partition=s3par --qos=normal job.sh
Verificare le GPU configurate
sinfo -o "%P %N %G %t"