SLURM " srun` vs `sbatch et de leurs paramètres

J'essaie de comprendre quelle est la différence entre SLURM de srun et sbatch commandes. Je serai heureux avec une explication générale, plutôt que des réponses aux questions suivantes, mais voici quelques points particuliers de la confusion qui peut être un point de départ et de donner une idée de ce que je suis à la recherche pour.

Selon la la documentation, srun est pour l'envoi de tâches, et sbatch est pour l'envoi de tâches pour exécution ultérieure, mais en pratique, la différence est claire pour moi, et leur comportement semble être le même. Par exemple, j'ai un cluster avec 2 nœuds, chacun avec 2 Processeurs). Si j'exécute srun testjob.sh & 5x de suite, il faudra bien la queue de la cinquième jusqu'à ce qu'un CPU devient disponible, tout comme l'exécution de sbatch testjob.sh.

De faire de la question plus concrète, je pense qu'un bon endroit pour commencer peut-être: Quelles sont les choses que je peux faire avec celui que j'ai ne peut pas faire avec les autres, et pourquoi?

Nombre des arguments pour les deux commandes sont les mêmes. Celles qui semblent les plus pertinentes sont --ntasks, --nodes, --cpus-per-task, --ntasks-per-node. Comment sont-ils liés les uns aux autres, et en quoi elles diffèrent pour srun vs sbatch?

L'un particulier de la différence, c'est que srun provoquera une erreur si testjob.sh n'est pas exécutable, c'est à dire l'autorisation chmod +x testjob.sh alors que sbatch seront heureux de vous exécuter. Ce qui se passe "sous le capot" qui provoque ce le cas?

La documentation mentionne également que srun est couramment utilisé à l'intérieur de sbatch scripts. Cela conduit à la question: Comment ils interagissent les uns avec les autres, et qu'est-ce que le "canonique" cas d'utilisation pour chacun d'eux? Plus précisément, j'utilise jamais srun par lui-même?

InformationsquelleAutor dkv | 2017-05-03