QoS disponibili sul cluster LYRALOGIN
Panoramica
Sul cluster LYRALOGIN, le Quality of Service (QoS) configurate in Slurm definiscono limiti temporali, limiti sulle risorse TRES, numero massimo di job e politiche di preemption applicabili ai job.
Le QoS presenti nei dati forniti sono:
normallonglarmafp_a100fp_a100_guesta100cancelecosisterh1004h1008h100emperorh100lph100phyh100qewh100
I dati riportati in questa pagina derivano dagli output:
sacctmgr show qos format=Name,Preempt,PreemptMode,Flags,MaxTRES,MaxWall,MaxTRESPU,MaxJobsPU,MaxSubmitPU,MaxJobsPA,MaxSubmitPA -P
e:
sacctmgr show qos format=Name,GrpTRES -P
L'opzione -P produce un output parsable e permette di visualizzare integralmente i valori senza il troncamento con + osservabile nell'output tabellare standard.
Riepilogo delle QoS
| QoS | Preempt | PreemptMode | Flags | GrpTRES | MaxTRES | MaxWall | MaxTRESPU | MaxJobsPU | MaxSubmitPU | MaxJobsPA | MaxSubmitPA |
|---|---|---|---|---|---|---|---|---|---|---|---|
normal |
cluster |
2-00:00:00 |
|||||||||
long |
cluster |
4-00:00:00 |
|||||||||
larma |
cluster |
||||||||||
fp_a100 |
a100cancel |
cluster |
gres/gpu=8 |
gres/gpu=8 |
|||||||
fp_a100_guest |
cluster |
gres/gpu=8 |
gres/gpu=8 |
1-00:00:00 |
|||||||
a100cancel |
cancel |
gres/gpu=8 |
|||||||||
ecosisterh100 |
cluster |
cpu=96,gres/gpu=4,mem=804G |
cpu=96,gres/gpu=4,mem=804G |
||||||||
4h100 |
cluster |
DenyOnLimit |
cpu=96,gres/gpu=4,mem=804G |
cpu=96,gres/gpu=4,mem=804G |
12:00:00 |
2 | 4 | 2 | 4 | ||
8h100 |
cluster |
DenyOnLimit |
cpu=192,gres/gpu=8,mem=1400G |
cpu=192,gres/gpu=8,mem=1400G |
12:00:00 |
1 | 4 | 1 | 4 | ||
emperorh100 |
cluster |
cpu=24,gres/gpu=1,mem=201G |
cpu=24,gres/gpu=1,mem=201G |
||||||||
lph100 |
cluster |
cpu=24,gres/gpu=1,mem=201G |
cpu=24,gres/gpu=1,mem=201G |
||||||||
phyh100 |
cluster |
cpu=24,gres/gpu=1,mem=201G |
cpu=24,gres/gpu=1,mem=201G |
||||||||
qewh100 |
cluster |
cpu=24,gres/gpu=1,mem=201G |
cpu=24,gres/gpu=1,mem=201G |
I campi vuoti indicano che nell'output fornito non è presente un valore per quel parametro. Non vengono quindi interpretati come limiti aggiuntivi.
QoS CPU
normal
La QoS normal presenta un tempo massimo di esecuzione di:
MaxWall=2-00:00:00
ovvero 2 giorni.
Il PreemptMode riportato è:
cluster
Nei dati forniti non risultano valori per GrpTRES, MaxTRES, MaxTRESPU o limiti sul numero di job.
long
La QoS long presenta:
MaxWall=4-00:00:00
ovvero 4 giorni.
Il PreemptMode riportato è:
cluster
larma
Per larma, l'output fornito non riporta limiti MaxWall, GrpTRES o MaxTRES.
Il PreemptMode riportato è:
cluster
QoS NVIDIA A100
fp_a100
La QoS fp_a100 è configurata con:
GrpTRES=gres/gpu=8
MaxTRES=gres/gpu=8
Preempt=a100cancel
PreemptMode=cluster
MaxTRES=gres/gpu=8 imposta a 8 GPU il limite TRES per un singolo job soggetto alla QoS.
GrpTRES=gres/gpu=8 imposta inoltre un limite aggregato di 8 GPU per la QoS.
Il campo:
Preempt=a100cancel
indica che a100cancel è la QoS indicata nella configurazione di preemption di fp_a100.
fp_a100_guest
La QoS fp_a100_guest presenta:
GrpTRES=gres/gpu=8
MaxTRES=gres/gpu=8
MaxWall=1-00:00:00
PreemptMode=cluster
Il tempo massimo è quindi 1 giorno.
Il limite GPU riportato da MaxTRES è di 8 GPU per job, mentre GrpTRES riporta un limite aggregato di 8 GPU per la QoS.
a100cancel
La QoS a100cancel presenta:
GrpTRES=gres/gpu=8
PreemptMode=cancel
Il valore cancel indica che la modalità di preemption configurata per questa QoS è la cancellazione del job quando la relativa politica di preemption viene applicata.
Nei dati forniti non è presente un valore MaxTRES per questa QoS.
QoS NVIDIA H100
ecosisterh100
La QoS ecosisterh100 presenta gli stessi valori in GrpTRES e MaxTRES:
cpu=96,gres/gpu=4,mem=804G
Per un singolo job, MaxTRES riporta quindi:
- 96 CPU;
- 4 GPU;
- 804 GB di memoria secondo la notazione Slurm mostrata.
GrpTRES riporta gli stessi valori come limite aggregato della QoS.
4h100
La QoS 4h100 è configurata con:
Flags=DenyOnLimit
GrpTRES=cpu=96,gres/gpu=4,mem=804G
MaxTRES=cpu=96,gres/gpu=4,mem=804G
MaxWall=12:00:00
MaxJobsPU=2
MaxSubmitPU=4
MaxJobsPA=2
MaxSubmitPA=4
Risorse massime per job
Un singolo job soggetto a 4h100 può utilizzare al massimo:
- 96 CPU;
- 4 GPU;
- 804 GB di memoria secondo il valore configurato;
- 12 ore di walltime.
Limiti sui job
Per singolo utente:
MaxJobsPU=2
MaxSubmitPU=4
quindi sono configurati un massimo di 2 job in esecuzione e 4 job sottoposti per utente.
Per account:
MaxJobsPA=2
MaxSubmitPA=4
quindi sono configurati un massimo di 2 job in esecuzione e 4 job sottoposti per account.
Il flag:
DenyOnLimit
è inoltre presente nella QoS.
8h100
La QoS 8h100 presenta:
Flags=DenyOnLimit
GrpTRES=cpu=192,gres/gpu=8,mem=1400G
MaxTRES=cpu=192,gres/gpu=8,mem=1400G
MaxWall=12:00:00
MaxJobsPU=1
MaxSubmitPU=4
MaxJobsPA=1
MaxSubmitPA=4
Risorse massime per job
MaxTRES permette al singolo job di arrivare a:
- 192 CPU;
- 8 GPU;
- 1400 GB di memoria secondo il valore configurato;
- 12 ore di walltime.
Limiti sui job
Per utente:
MaxJobsPU=1
MaxSubmitPU=4
Per account:
MaxJobsPA=1
MaxSubmitPA=4
Sono quindi configurati un massimo di 1 job contemporaneamente in esecuzione e 4 job sottoposti, sia nell'ambito per-user sia nell'ambito per-account mostrato dall'output.
emperorh100
La QoS emperorh100 presenta:
GrpTRES=cpu=24,gres/gpu=1,mem=201G
MaxTRES=cpu=24,gres/gpu=1,mem=201G
MaxTRES limita il singolo job a:
- 24 CPU;
- 1 GPU;
- 201 GB di memoria secondo il valore configurato.
lph100
GrpTRES=cpu=24,gres/gpu=1,mem=201G
MaxTRES=cpu=24,gres/gpu=1,mem=201G
Per singolo job sono quindi configurati al massimo:
- 24 CPU;
- 1 GPU;
- 201 GB di memoria.
phyh100
GrpTRES=cpu=24,gres/gpu=1,mem=201G
MaxTRES=cpu=24,gres/gpu=1,mem=201G
Per singolo job sono quindi configurati al massimo:
- 24 CPU;
- 1 GPU;
- 201 GB di memoria.
qewh100
GrpTRES=cpu=24,gres/gpu=1,mem=201G
MaxTRES=cpu=24,gres/gpu=1,mem=201G
Per singolo job sono quindi configurati al massimo:
- 24 CPU;
- 1 GPU;
- 201 GB di memoria.
Significato dei principali parametri delle QoS
GrpTRES
GrpTRES definisce limiti aggregati sulle Trackable RESources (TRES) utilizzate contemporaneamente dai job soggetti alla QoS.
I TRES presenti nella configurazione LYRALOGIN comprendono:
cpu: CPU;mem: memoria;gres/gpu: GPU.
Ad esempio:
GrpTRES=cpu=96,gres/gpu=4,mem=804G
configura per la QoS un limite aggregato di:
- 96 CPU;
- 4 GPU;
- 804G di memoria.
Questa caratteristica è particolarmente rilevante nelle QoS GPU di LYRALOGIN.
MaxTRES
MaxTRES definisce il limite massimo di risorse TRES utilizzabili da un singolo job appartenente alla QoS.
Ad esempio:
MaxTRES=cpu=24,gres/gpu=1,mem=201G
limita il singolo job a:
- 24 CPU;
- 1 GPU;
- 201G di memoria.
Un caso più ampio è 8h100:
MaxTRES=cpu=192,gres/gpu=8,mem=1400G
Differenza tra GrpTRES e MaxTRES
| Parametro | Ambito |
|---|---|
GrpTRES |
Limite aggregato delle risorse TRES utilizzate dai job della QoS |
MaxTRES |
Limite TRES per un singolo job |
Ad esempio, 4h100 contiene:
GrpTRES=cpu=96,gres/gpu=4,mem=804G
MaxTRES=cpu=96,gres/gpu=4,mem=804G
Lo stesso insieme di valori compare quindi sia come limite aggregato sia come limite massimo del singolo job.
MaxWall
MaxWall definisce il tempo massimo di esecuzione consentito per un job appartenente alla QoS.
I valori esplicitamente configurati nei dati forniti sono:
| QoS | MaxWall | Durata |
|---|---|---|
normal |
2-00:00:00 |
2 giorni |
long |
4-00:00:00 |
4 giorni |
fp_a100_guest |
1-00:00:00 |
1 giorno |
4h100 |
12:00:00 |
12 ore |
8h100 |
12:00:00 |
12 ore |
Preempt
Preempt indica le QoS elencate nel campo di preemption della QoS corrente.
Nei dati forniti compare:
fp_a100 | Preempt=a100cancel
Le altre QoS non riportano un valore nel campo Preempt.
PreemptMode
PreemptMode specifica la modalità di preemption associata alla QoS.
Nei dati LYRALOGIN compaiono:
cluster
cancel
cluster indica che per quella QoS viene utilizzata la modalità di preemption definita a livello di cluster.
a100cancel presenta invece:
PreemptMode=cancel
che configura la cancellazione del job come modalità di preemption.
Flags
Il campo Flags contiene opzioni aggiuntive della QoS.
Nei dati forniti il flag:
DenyOnLimit
è presente in:
4h1008h100
DenyOnLimit fa sì che richieste che superano determinati limiti della QoS vengano negate anziché essere mantenute semplicemente in attesa a causa di quel limite.
MaxTRESPU
MaxTRESPU significa:
Maximum TRES Per User
Definisce i limiti TRES complessivi per singolo utente nella QoS.
Nell'output fornito per LYRALOGIN il campo MaxTRESPU è vuoto per tutte le QoS elencate.
MaxJobsPU
MaxJobsPU indica il numero massimo di job contemporaneamente in esecuzione per singolo utente nella QoS.
Nei dati forniti:
4h100 MaxJobsPU=2
8h100 MaxJobsPU=1
MaxSubmitPU
MaxSubmitPU indica il numero massimo di job sottoposti contemporaneamente da un singolo utente nella QoS.
Nei dati forniti:
4h100 MaxSubmitPU=4
8h100 MaxSubmitPU=4
MaxJobsPA
MaxJobsPA indica il numero massimo di job contemporaneamente in esecuzione per account Slurm nella QoS.
Nei dati forniti:
4h100 MaxJobsPA=2
8h100 MaxJobsPA=1
MaxSubmitPA
MaxSubmitPA indica il numero massimo di job sottoposti contemporaneamente per account Slurm nella QoS.
Nei dati forniti:
4h100 MaxSubmitPA=4
8h100 MaxSubmitPA=4
Differenza tra limiti PU e PA
| Suffisso | Significato | Ambito |
|---|---|---|
PU |
Per User | Limite applicato al singolo utente |
PA |
Per Account | Limite applicato all'account Slurm |
In 4h100, ad esempio:
MaxJobsPU=2
MaxSubmitPU=4
MaxJobsPA=2
MaxSubmitPA=4
sono presenti sia limiti per utente sia limiti per account.
Confronto delle QoS GPU
QoS A100
| QoS | GPU in GrpTRES | GPU MaxTRES | MaxWall | Preemption |
|---|---|---|---|---|
fp_a100 |
8 | 8 | - | Preempt=a100cancel |
fp_a100_guest |
8 | 8 | 1 giorno | - |
a100cancel |
8 | - | - | PreemptMode=cancel |
QoS H100
| QoS | CPU MaxTRES | GPU MaxTRES | Mem MaxTRES | MaxWall | MaxJobsPU | MaxJobsPA |
|---|---|---|---|---|---|---|
ecosisterh100 |
96 | 4 | 804G | - | - | - |
4h100 |
96 | 4 | 804G | 12 ore | 2 | 2 |
8h100 |
192 | 8 | 1400G | 12 ore | 1 | 1 |
emperorh100 |
24 | 1 | 201G | - | - | - |
lph100 |
24 | 1 | 201G | - | - | - |
phyh100 |
24 | 1 | 201G | - | - | - |
qewh100 |
24 | 1 | 201G | - | - | - |
Riepilogo dei parametri
| Parametro | Descrizione |
|---|---|
Preempt |
QoS indicate nella configurazione di preemption della QoS corrente |
PreemptMode |
Modalità di preemption associata alla QoS |
Flags |
Opzioni aggiuntive della QoS |
GrpTRES |
Limiti TRES aggregati della QoS |
MaxTRES |
Risorse TRES massime per singolo job |
MaxWall |
Tempo massimo di esecuzione di un job |
MaxTRESPU |
Risorse TRES massime complessive per utente |
MaxJobsPU |
Numero massimo di job in esecuzione per utente |
MaxSubmitPU |
Numero massimo di job sottoposti per utente |
MaxJobsPA |
Numero massimo di job in esecuzione per account |
MaxSubmitPA |
Numero massimo di job sottoposti per account |
Utilizzo in uno script Slurm
Per richiedere una QoS in uno script Slurm:
#SBATCH --qos=<nome_qos>
Esempio con normal
#!/bin/bash
#SBATCH --job-name=esempio_cpu
#SBATCH --partition=s3par
#SBATCH --qos=normal
#SBATCH --time=01:00:00
srun ./programma
Esempio A100
#!/bin/bash
#SBATCH --job-name=esempio_a100
#SBATCH --partition=fluidp_dgx
#SBATCH --qos=fp_a100
#SBATCH --gres=gpu:a100:1
#SBATCH --time=01:00:00
srun ./programma_gpu
Esempio H100 con 4h100
#!/bin/bash
#SBATCH --job-name=esempio_h100
#SBATCH --partition=gpuh100
#SBATCH --qos=4h100
#SBATCH --gres=gpu:h100:1
#SBATCH --time=01:00:00
srun ./programma_gpu
La QoS richiesta deve essere disponibile per l'associazione Slurm dell'utente e compatibile con la partizione e con le risorse richieste dal job.
Comandi di verifica
Visualizzare tutte le QoS
sacctmgr show qos
Visualizzare i valori senza troncamento delle colonne
sacctmgr show qos -P
Visualizzare i principali limiti
sacctmgr show qos format=Name,Preempt,PreemptMode,Flags,GrpTRES,MaxTRES,MaxWall,MaxTRESPU,MaxJobsPU,MaxSubmitPU,MaxJobsPA,MaxSubmitPA -P
Visualizzare GrpTRES
sacctmgr show qos format=Name,GrpTRES -P