2016-08-27 2 views
7

j'utilisais SLURM à utiliser un cluster de calcul et il avait l'-ntasks ou -n. J'ai lu évidemment la documentation pour elle (http://slurm.schedmd.com/sbatch.html):Que font les tâches --ntasks ou -n dans SLURM?

sbatch ne lance pas des tâches, il demande une allocation des ressources et soumet un script batch. Cette option indique au contrôleur Slurm que les tâches exécutées dans l'allocation lancent un maximum de tâches de numérotation et de fournir des ressources suffisantes. La valeur par défaut est une tâche par nœud, mais notez que l'option --cpus-per-task modifiera cette valeur par défaut.

la partie spécifique, je ne comprends pas ce que cela signifie est:

exécuter dans l'allocation lancera un maximum de tâches de nombre et de prévoient des ressources suffisantes.

J'ai quelques questions:

  1. Je suppose que ma première question est ce que signifie le mot « tâche » moyenne et la différence est avec le mot dans le contexte de SLURM « emploi ». Je pense généralement à un travail comme l'exécution du script bash sous sbatch comme dans sbatch my_batch_job.sh. Je ne suis pas sûr de ce que signifie la tâche.
  2. Si j'assimilent la tâche mot travail alors je pensais qu'il aurait couru le même script bash identique plusieurs fois selon l'argument -n, --ntasks=<number>. Cependant, je suis évidemment testé dans le groupe, a couru un echo hello avec --ntask=9 et je pensais sbatch serait l'écho bonjour 9 fois à stdout (qui est recueillie dans slurm-job_id.out, mais à ma grande surprise, il y avait une seule exécution de mon echo bonjour le script ensuite qu'est-ce que cette commande même faire? il semble qu'il ne fait rien ou du moins je ne vois pas ce qui est supposé faire.

Je ne sais -a, --array=<indexes> l'option existe pour plusieurs emplois. C'est un autre sujet. Je veux simplement savoir ce que --ntasks est censé faire, idéalement avec un exemple pour que je puisse le tester dans le cluster.

Répondre

7

Les options "--ntasks" spécifient combien d'instances de votre commande sont exécutées. Pour une configuration de cluster commune et si vous lancez votre commande avec "srun" cela correspond au nombre de rangs MPI.

En revanche, l'option « --cpus par tâche » spécifier le nombre de processeurs chaque tâche peut utiliser.

Votre sortie me surprend aussi bien. Avez-vous lancé votre commande dans le script ou via srun? Est-ce que vous regardez comme script:

#!/bin/bash 
#SBATCH --ntasks=8 
## more options 
echo hello 

Cela devrait toujours sortie une seule ligne, car le script est exécuté uniquement sur le nœud de présentation et non le travailleur.

Si votre script ressemble

#!/bin/bash 
#SBATCH --ntasks=8 
## more options 
srun echo hello 

srun provoque le script à exécuter votre commande sur les nœuds des travailleurs et par conséquent, vous devriez obtenir 8 lignes de bonjour.