#slurm #sbatch
Вопрос:
Как запустить установочный код в сценарии SLURM sbatch? Могу я просто использовать две srun
строки?
Гарантированно ли выполнение этих двух srun
строк на одном и том же узле без промежуточной очистки?
#!/bin/bash # Parameters #SBATCH ... # setup srun cp /nfs/data $TMPDIR # job srun a.out $TMPDIR
Ответ №1:
srun
Команда запустит столько экземпляров команды, сколько указано в --ntasks
параметре. Он обычно используется с программами MPI и программами, которые выполняют неудобно параллельные рабочие нагрузки.
Подобная команда srun cp ...
имеет смысл только в том случае, если запрашивается несколько узлов и на каждом узле выполняется только одна задача, например --nodes=N
, или --ntasks=N --ntasks-per-node=1
или аналогичная комбинация. Его можно использовать для копирования файлов из сетевой файловой системы в локальную файловую систему.
Если есть только один узел и несколько задач, srun
это может вызвать проблемы при одновременной попытке записи в один и тот же файл.
Если есть только одна задача, то они на самом srun
деле не нужны (за исключением случаев, когда вы хотите использовать sstat
их для мониторинга).
В любом случае последовательные srun
операции выполняются на одних и тех же наборах узлов без очистки.
Комментарии:
1. Можете ли вы привести пример того, как это сделать?
2. не без более конкретной информации о типе работы и о том, какова ее цель