Disponibilité des noeuds GPU?

Bonjour,

Quelle commande permet de connaître la disponibilité des noeuds GPU ?

A priori

squeue -p gpu

va me donner l'état de la queue avec les jobs qui tournent et ceux en attente.

D'après la doc,

sinfo -Ne -p gpu --format "%.15N %.4c %.7m %G"

indique le nombre de partitions pour chaque GPU.

Mais quelle commande pourrait me donner le nombre partitions de GPU disponibles (c'est-à-dure utilisable tout de suite) ?
Je pense à un truc comme ça :

sinfo -N -O nodelist,partition,cpustate,memory,allocmem,freemem -p gpu

mais je n'ai pas l'impression que l'option gpustate existe.

D'avance merci pour votre aide.

Pierre

PS : pourriez-vous également jeter un coup d'oeil à la queue GPU ? J'ai l'impression qu'il y a un souci : trop de job pending pour peu de running.

Bonjour @pierrepo

On peut utiliser sinfo en demande les "Generic resources (gres)":

sinfo -N -O nodelist,partition:15,Gres:30,GresUsed:50 -p gpu
NODELIST            PARTITION      GRES                          GRES_USED                                         
gpu-node-01         gpu            gpu:1g.5gb:14                 gpu:1g.5gb:0(IDX:N/A)                             
gpu-node-02         gpu            gpu:3g.20gb:2,gpu:7g.40gb:1   gpu:3g.20gb:1(IDX:0),gpu:7g.40gb:0(IDX:N/A)       
gpu-node-03         gpu            gpu:7g.40gb:2                 gpu:7g.40gb:2(IDX:0-1)    

C'est à dire:

  • gpu-node-01: 14 profils 1g.5gb, 0 utilisé
  • gpu-node-02: 2 profils 3g.20gb, 1 utilisé
  • gpu-node-02: 1 profil 7g.40gb, 0 utilisé
  • gpu-node-03: 1 profil 7g.40gb, 2 utilisés

On peut alors savoir les profils/GPU disponibles immédiatement.

Plus d'infos sur les profils ("Multi-Instance GPU"): SLURM at IFB Core - IFB Core Cluster Documentation

Les jobs PENDING sont normal puisque les jobs en attente demande des ressources non disponibles (gros profil de 7g.40gb) ou en-dehors des usages possibles ( Time de 6j > PartitionTimeLimit):

squeue -p gpu -O "JobID:10,UserName:10,State:10,TimeUsed:10,TimeLimit:15,NumNodes:6,NumCPUs:5,MinMemory:15,tres-per-node,NodeList:15,Reason"
JOBID     USER      STATE     TIME      TIME_LIMIT     NODES CPUS MIN_MEMORY     TRES_PER_NODE       NODELIST       REASON              
33232513  agile     PENDING   0:00      3-00:00:00     1     10   100G           gpu:3g.20gb:2                      Resources           
33232487  zibo      PENDING   0:00      1-12:00:00     1     10   50G            gpu:7g.40gb:1                      Priority            
33232497  zibo      PENDING   0:00      1-12:00:00     1     10   50G            gpu:7g.40gb:1                      Priority            
33232508  zibo      PENDING   0:00      1-12:00:00     1     10   50G            gpu:7g.40gb:1                      Priority            
33232519  zibo      PENDING   0:00      1-12:00:00     1     10   50G            gpu:7g.40gb:1                      Priority            
33232522  zibo      PENDING   0:00      1-12:00:00     1     10   50G            gpu:7g.40gb:1                      Priority            
33232538  zibo      PENDING   0:00      1-12:00:00     1     10   50G            gpu:7g.40gb:1                      Priority            
33221958  dcros     PENDING   0:00      3-00:00:00     1     32   15G            gpu:7g.40gb:1                      Priority            
33230234  dcros     PENDING   0:00      6-00:00:00     1     32   15G            gpu:3g.20gb:1                      PartitionTimeLimit  
33232453  zibo      RUNNING   1:11:07   1-12:00:00     1     10   50G            gpu:7g.40gb:1       gpu-node-03    None                
33232437  zibo      RUNNING   4:27:49   1-12:00:00     1     10   50G            gpu:7g.40gb:1       gpu-node-03    None                
33231166  sorozcoariRUNNING   6:45:37   12:00:00       1     32   50G            gpu:3g.20gb:1       gpu-node-02    None                

A noter qu'il est possible de vérifier le bon usage du GPU via la commande nvidia-smi sur le serveur gpu. Par exemple sur gpu-node-03:

ssh gpu-node-03 nvidia-smi

On peut alors vérifier que notre programme (process) utilisé bien tout ou partie du GPU (MIG).

1 « J'aime »

Merci @dbenaben c'est magnifique !