SLURM: один и тот же скрипт запускается на разных, но последовательно пронумерованных файлах - PullRequest
0 голосов
/ 18 сентября 2018

Кластер, который я использую, только что переключился на SLURM, и я пытаюсь сделать что-то, что мне кажется очень простым.У меня есть сценарий, который я хочу запустить для многих файлов, пронумерованных последовательно, например:

python script.py file1.gz
python script.py file2.gz
python script.py file3.gz

У меня есть несколько частей, но я не могу понять, как собрать их вместе для запуска.Я думаю, что мне нужно использовать #SBATCH --array=0-29 для вызова количества файлов, и $SLURM_ARRAY_TASK_ID также участвует.

#!/bin/bash -l
#SBATCH --ntasks=1
#SBATCH --time=24:00:00
#SBATCH --mem=4G
#SBATCH --array=0-29   ##my files go from file1 - file30

$SLURM_ARRAY_TASK_ID

Я не уверен, как включить SBATCH --array и ARRAY_TASK_ID, чтобы script.py работал на всех файлах одновременно.

1 Ответ

0 голосов
/ 18 сентября 2018

У вас почти есть это:

#!/bin/bash -l
#SBATCH --ntasks=1
#SBATCH --time=24:00:00
#SBATCH --mem=4G
#SBATCH --array=1-30   ##my files go from file1 - file30

python script.py "file${SLURM_ARRAY_TASK_ID}.gz"

Вам лучше нумеровать элементы массива, как нумерация файлов, которая у вас есть. А затем вызовите скрипт с правильным именем файла, созданным с помощью этой переменной SLURM.

Этот сценарий отправки заданий ставит в очередь массив заданий, каждое из которых имеет ограничение по времени 24 часа, использует до 4 ГБ памяти и выполняет только одну задачу (одного процессора).

...