2017-04-15 3 views
-1

Je tire mes cheveux depuis environ une semaine pour que le script de travail sbatch se soumette à plusieurs nœuds. J'ai deux noeuds de calcul avec (2) sockets (12) noyaux/socket (2) threads/core. J'ai un simple programme c qui calcule la série Fibonacci (pas de multi-thread ou mpi juste un seul programme de traitement de base unique).Sbatch et srun SLURM sch

Maintenant, j'ai le script fib.sh qui contient 30 lignes de "srun ./fibonacci &" et je fais ./fib.sh les 12 premiers travaux exécutés sur le premier noeud1, les 12 prochains fonctionnent sur un autre noeud2 et le Le repos est dans l'état d'attente qui est ce que je veux.

Mais quand j'essaye d'obtenir ce même comportement avec sbatch toutes les tâches s'exécutent sur node1 ce qui n'est pas ce que je veux. J'ai tordu avec les drapeaux #SBATCH en utilisant -n1 -N2, --cpus-per-task = 1, mais n'obtenant pas le résultat désiré. J'apprécie que quelqu'un puisse faire la lumière sur ce sujet.

Ci-dessous fait partie de mon slurm.conf si nécessaire

# SCHEDULING 
FastSchedule=1 
SchedulerType=sched/backfill 
SelectType=select/cons_res 
SelectTypeParameters=CR_Core 

NodeName=node[1-2] Sockets=2 CoresPerSocket=12 ThreadsPerCore=2 State=UNKNOWN 
PartitionName=debug Nodes=node[1-2] Default=YES MaxTime=INFINITE State=UP 

Ci-dessous le script sbatch

#!/bin/bash 
# SBATCH --cpus-per-task=30 
#SBATCH --ntasks-per-core=1 
#run ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
srun ./fib 3 & 
wait 

Répondre

2

Si je comprends bien, vous voulez exécuter 30 copies identiques de fib? (Tout d'abord, vous ne voulez pas 30 srun lignes (ou &) - SLURM gère les copies multiples.)

Si tel est le cas, vous probablement voulez quelque chose comme ceci dans votre script soumettre:

#!/bin/bash 
#SBATCH --ntasks=30 
srun ./fib 3