Я пытаюсь понять, какая разница между SLURM srun
и sbatch
. Я буду доволен общим объяснением, а не конкретными ответами на следующие вопросы, но вот некоторые конкретные моменты путаницы, которые могут быть отправной точкой и дать представление о том, что я ищу.
Чтобы сделать вопрос более конкретным, я думаю, что хорошим местом для начала может быть: Что я могу сделать с тем, что я не могу сделать с другим, и почему?
Многие аргументы для обеих команд одинаковы. Наиболее релевантными являются --ntasks
, --nodes
, --cpus-per-task
, --ntasks-per-node
. Как они связаны друг с другом и как они отличаются для srun
vs sbatch
?
Единственное отличие состоит в том, что srun
приведет к ошибке, если testjob.sh
не имеет исполняемого разрешения, т.е. chmod +x testjob.sh
, тогда как sbatch
с радостью запустит его. Что происходит "под капотом", что приводит к этому?
В документации также упоминается, что srun
обычно используется внутри сценариев sbatch
. Это приводит к вопросу: Как они взаимодействуют друг с другом, и какова "каноническая" усекаса для каждого из них? В частности, могу ли я когда-либо использовать srun
самостоятельно?