запуск задания массива slurm с указанным количеством узлов

Я пытаюсь выровнять 168 файлов последовательностей на нашем HPC, используя slurm версии 14.03.0. Мне разрешено использовать максимум 9 вычислительных узлов одновременно, чтобы некоторые узлы оставались открытыми для других людей.

Я изменил имена файлов, чтобы использовать функцию массива в sbatch. Файлы последовательности выглядят следующим образом: Sequence1.fastq.gz, Sequence2.fastq.gz,… Sequence168.fastq.gz

Я не могу понять, как заставить его запускать все 168 файлов, 9 за раз. Я могу заставить его запускать все 168 файлов, но он использует все доступные узлы, что доставит мне неприятности, поскольку это будет работать в течение нескольких дней.

Я обнаружил, что можно использовать «--array = 1-168% 9», чтобы указать, сколько запускать одновременно, но это было реализовано в более новой версии slurm, чем у нас в кластере. Есть ли альтернативный способ получить эту функциональность? Я пробовала разные вещи и выдергивала волосы пару недель.

Я пытаюсь запустить это следующим образом:

#!/bin/bash
#SBATCH --job-name=McSeqs
#SBATCH --nodes=1
#SBATCH --array=1-168
srun alignmentProgramHere Sequence${SLURM_ARRAY_TASK_ID}.fastq.gz -o outputdirectory/

Спасибо! Мэтт


person Matt    schedule 09.02.2015    source источник


Ответы (1)


Думаю, я нашел способ заставить это работать. Уловка заключалась в том, что все параметры sbatch передаются каждому экземпляру массива. Я использовал параметр --exclude, чтобы указать каждому экземпляру массива не использовать половину вычислительных узлов. Итак, теперь я запускаю 9 своих файлов одновременно, оставляя вычислительные узлы открытыми для других людей.

#!/bin/bash
#SBATCH --job-name=McSeqs
#SBATCH --nodes=1
#SBATCH --array=1-168
#SBATCH --exclude=cluster[10-20]

srun alignmentProgramHere Sequence${SLURM_ARRAY_TASK_ID}.fastq.gz -o outputdirectory/
person Matt    schedule 11.02.2015