Я пытаюсь понять, какая разница между 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 самостоятельно?