Один из вариантов - использовать переменную и установить ее на srun
в работе (например, если установлено $SLURM_JOBID
), а в противном случае оставить ее пустой.
if [ -n $SLURM_JOBID ] ;
then
LAUNCH=srun <srun params>
else
LAUNCH=
fi
if ! $LAUNCH lengthy_command
then
echo "Error occured"
fi
Этот подход может быть расширен путем установки LAUNCH
в parallel <parallel options>
при использовании параллельной GNU или других команд при запуске в кластере с другим планировщиком.
Другой вариант - создать функцию Bash с именем srun
, которая инкапсулирует логику (не проверено):
srun() {
if [ -n $SLURM_JOBID ] ;
then
command srun $@
else
$@
fi
}