Если вы хотите отправить одно задание, которое само отправляет три других задания, то, как отмечает @ Maarten-vd-Sande, вы можете заменить вызовы srun
на sbatch
:
sbatch -n 10 -c 1 -t 3:00:00 --wrap "python program.py sample1.bam -output_dir1"
Это представит три задания, независимых друг от друга. Основная работа сразу прекратится. Но в этом случае не имеет смысла запрашивать -n 3
для такого простого задания.
Если вы хотите отправить задание, которое запускает три задачи , вы должны сделать следующее:
#!/bin/sh
#SBATCH -N 1
#SBATCH -n 30
#SBATCH -c 1
#SBATCH -t 03:10:00
# Job 1:
srun -n 10 -c 1 -t 3:00:00 python program.py sample1.bam -output_dir1 &
# Job 2:
srun -n 10 -c 1 -t 3:00:00 python program.py sample2.bam -output_dir2 &
# Job 3:
srun -n 10 -c 1 -t 3:00:00 python program.py sample3.bam sample3normal.bam -output_dir3 &
wait
Но тогда нет смысла иметь ограничение по времени в 10 минут в скрипте отправки и ограничение в 3 часа в задачах. Также общее количество задач (n-
), запрошенных srun
, должно совпадать с общим количеством задач, запрошенных в основном сценарии отправки. Отсюда адаптированный сценарий выше.