Je suis nouveau sur SLURM. J'essaie de configurer slurm dans un nouveau cluster.
J'ai 4 nœuds, chacun ayant 14 cœurs. Je voulais partager les nœuds de telle manière que chaque cœur puisse exécuter indépendamment (c'est-à-dire, le noeud01 peut avoir 14 jobs séquentiels indépendants en cours en même temps), mais aucun cœur ne devrait exécuter plus d'un job. En consultant la documentation, j'ai compris que je devais définir
SelectType = select/cons_res
SelectTypeParameters = CR_CORE
Je l'ai fait dans slurm.conf
et j'ai redémarré slurmctld
. Mais maintenant, si je soumets un travail, soit il ne parvient pas à trouver la configuration du nœud, soit le travail se termine en état CG.
Exemple 1:
[sr@clstr mpitests]$ cat newHello.slrm
#!/bin/sh
#SBATCH --time=00:01:00
#SBATCH -N 1
#SBATCH --ntasks=4
#SBATCH --ntasks-per-node=4
module add shared openmpi/gcc/64 slurm
module load somesh/scripts/1.0
mpirun helloMPIf90
Mène à:
[sr@clstr mpitests]$ sbatch -v newHello.slrm
sbatch: options définies pour le programme `sbatch'
sbatch: ----------------- ---------------------
sbatch: utilisateur : `sr'
sbatch: uid : 1003
sbatch: gid : 1003
sbatch: répertoire de travail : /home/sr/clusterTests/mpitests
sbatch: ntasks : 4 (défini)
sbatch: nœuds : 1-1
sbatch: jobid : 4294967294 (par défaut)
sbatch: partition : par défaut
sbatch: profil : `NotSet'
sbatch: nom du travail : `newHello.slrm'
sbatch: réservation : `(null)'
sbatch: wckey : `(null)'
sbatch: distribution : inconnue
sbatch: verbose : 1
sbatch: immédiat : false
sbatch: surinvestissement : false
sbatch: limite de temps : 1
sbatch: nice : -2
sbatch: compte : (null)
sbatch: commentaire : (null)
sbatch: dépendance : (null)
sbatch: qos : (null)
sbatch: contraintes :
sbatch: géométrie : (null)
sbatch: redémarrer : oui
sbatch: rotation : non
sbatch: réseau : (null)
sbatch: tableau : N/A
sbatch: fréq_min_cpu : 4294967294
sbatch: fréq_max_cpu : 4294967294
sbatch: gov_fréq_cpu : 4294967294
sbatch: type_mail : NONE
sbatch: utilisateur_mail : (null)
sbatch: sockets-par-noeud : -2
sbatch: cores-par-socket : -2
sbatch: threads-par-core : -2
sbatch: ntasks-par-noeud : 4
sbatch: ntasks-par-socket : -2
sbatch: ntasks-par-core : -2
sbatch: lier_mem : par défaut
sbatch: taille_plan : 4294967294
sbatch: propager : NONE
sbatch: commutateurs : -1
sbatch: waitFor-switches : -1
sbatch: core-spec : NA
sbatch: burst_buffer : `(null)'
sbatch: commande distante : `/home/sr/clusterTests/mpitests/newHello.slrm'
sbatch: puissance :
sbatch: attendre : oui
sbatch: Consumable Resources (CR) Node Selection plugin chargé avec argument 4
sbatch: Plugin de sélection de nœud Cray chargé
sbatch: Plugin de sélection de nœud linéaire chargé avec argument 4
sbatch: Plugin de sélection de ressources de travail séquentiel chargé avec argument 4
sbatch: erreur: échec de la soumission du travail en lots : La configuration du nœud demandé n'est pas disponible
Exemple 2:
[sr@clstr mpitests]$ cat newHello.slrm
#!/bin/sh
#SBATCH --time=00:01:00
#SBATCH -N 1
#SBATCH --ntasks=1
#SBATCH --ntasks-per-node=1
module add shared openmpi/gcc/64 slurm
module load somesh/scripts/1.0
helloMPIf90
Mène à:
[sr@clstr mpitests]$ sbatch -v newHello.slrm
sbatch: options définies pour le programme `sbatch'
sbatch: ----------------- ---------------------
sbatch: utilisateur : `sr'
sbatch: uid : 1003
sbatch: gid : 1003
sbatch: répertoire de travail : /home/sr/clusterTests/mpitests
sbatch: ntasks : 1 (défini)
sbatch: nœuds : 1-1
sbatch: jobid : 4294967294 (par défaut)
sbatch: partition : par défaut
sbatch: profil : `NotSet'
sbatch: nom du travail : `newHello.slrm'
sbatch: réservation : `(null)'
sbatch: wckey : `(null)'
sbatch: distribution : inconnue
sbatch: verbose : 1
sbatch: immédiat : false
sbatch: surinvestissement : false
sbatch: limite de temps : 1
sbatch: nice : -2
sbatch: compte : (null)
sbatch: commentaire : (null)
sbatch: dépendance : (null)
sbatch: qos : (null)
sbatch: contraintes :
sbatch: géométrie : (null)
sbatch: redémarrer : oui
sbatch: rotation : non
sbatch: réseau : (null)
sbatch: tableau : N/A
sbatch: fréq_min_cpu : 4294967294
sbatch: fréq_max_cpu : 4294967294
sbatch: gov_fréq_cpu : 4294967294
sbatch: type_mail : NONE
sbatch: utilisateur_mail : (null)
sbatch: sockets-par-noeud : -2
sbatch: cores-par-socket : -2
sbatch: threads-par-core : -2
sbatch: ntasks-par-noeud : 1
sbatch: ntasks-par-socket : -2
sbatch: ntasks-par-core : -2
sbatch: lier_mem : par défaut
sbatch: taille_plan : 4294967294
sbatch: propager : NONE
sbatch: commutateurs : -1
sbatch: waitFor-switches : -1
sbatch: core-spec : NA
sbatch: burst_buffer : `(null)'
sbatch: commande distante : `/home/sr/clusterTests/mpitests/newHello.slrm'
sbatch: puissance :
sbatch: attendre : oui
sbatch: Consumable Resources (CR) Node Selection plugin chargé avec argument 4
sbatch: Plugin de sélection de nœud Cray chargé
sbatch: Plugin de sélection de nœud linéaire chargé avec argument 4
sbatch: Plugin de sélection de ressources de travail séquentiel chargé avec argument 4
Job en lot soumis 108
[sr@clstr mpitests]$ squeue
JOBID PARTITION NOM UTILISATEUR ST TEMPS NOEUDS NOEUDS(REASON)
108 defq newHello sr CG 0:01 1 node001
[sr@clstr mpitests]$ scontrol show job=108
JobId=108 JobName=newHello.slrm
UserId=sr(1003) GroupId=sr(1003) MCS_label=N/A
Priority=4294901756 Nice=0 Account=(null) QOS=normal
JobState=COMPLETING Reason=NonZeroExitCode Dependency=(null)
Requeue=1 Restarts=0 BatchFlag=1 Reboot=0 ExitCode=1:0
RunTime=00:00:01 TimeLimit=00:01:00 TimeMin=N/A
SubmitTime=2017-03-03T18:25:51 EligibleTime=2017-03-03T18:25:51
StartTime=2017-03-03T18:26:01 EndTime=2017-03-03T18:26:02 Deadline=N/A
PreemptTime=None SuspendTime=None SecsPreSuspend=0
Partition=defq AllocNode:Sid=clstr:20260
ReqNodeList=(null) ExcNodeList=(null)
NodeList=node001
BatchHost=node001
NumNodes=1 NumCPUs=1 NumTasks=1 CPUs/Task=1 ReqB:S:C:T=0:0:*:*
TRES=cpu=1,node=1
Socks/Node=* NtasksPerN:B:S:C=1:0:*:* CoreSpec=*
MinCPUsNode=1 MinMemoryNode=0 MinTmpDiskNode=0
Features=(null) Gres=(null) Reservation=(null)
OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null)
Command=/home/sr/clusterTests/mpitests/newHello.slrm
WorkDir=/home/sr/clusterTests/mpitests
StdErr=/home/sr/clusterTests/mpitests/slurm-108.out
StdIn=/dev/null
StdOut=/home/sr/clusterTests/mpitests/slurm-108.out
Power=
Dans le cas du deuxième exemple, il reste en état CG jusqu'à ce que je réinitialise le nœud.
Si je réinitialise le slurm.conf
à SelectType=select/linear
, les choses se comportent normalement comme elles devraient.
Je suis perdu quant à l'endroit où je fais une erreur. Est-ce lié à la configuration de slurm, à mon script de soumission de travail slurm, ou à quelque chose d'autre entièrement.
Si quelqu'un peut me pointer dans la bonne direction, ce serait très utile.
[Remarque: Je l'ai initialement posté sur stackoverflow, mais j'ai réalisé que superuser pourrait être un meilleur forum.]