Unimore HPC Wiki

LYRALOGIN · QOS

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:

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:

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:

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:

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:


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:


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:


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:


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:

Ad esempio:

GrpTRES=cpu=96,gres/gpu=4,mem=804G

configura per la QoS un limite aggregato di:

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:

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:

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