У меня есть два сценария задания для отправки в SLURM: jobA.sh и jobB.sh. jobA - это массив заданий, и я хочу, чтобы jobB запускался только после того, как все jobA было завершено. Мой скрипт для jobA.sh:
#!/bin/bash
#SBATCH -A TRIGWMS
#SBATCH --mail-type=FAIL
# cores per task
#SBATCH -c 11
#
#SBATCH --array=%#combo#%%100
#SBATCH -J %#profile#%_%#freq#%
#
# number of nodes
#SBATCH -N 1
#
#SBATCH -t 0-2:00:00
# Standard output is saved in this file
#SBATCH -o myjob_%A_%a.out
#
# Standard error messages are saved in this file
#SBATCH -e myjob_%A_%a.err
#
# set the $OMP_NUM_THREADS variable
export OMP_NUM_THREADS=12
./myjobA_$SLURM_ARRAY_TASK_ID
Этот сценарий задания работает нормально, но я не могу заставить работать jobB после его выполнения. В jobB есть следующий скрипт:
#!/bin/bash
#SBATCH -A TRIGWMS
#SBATCH --mail-type=FAIL
# cores per task
#SBATCH -c 11
#
# number of nodes
#SBATCH -N 1
#SBATCH --ntasks=1
#SBATCH -J MESA
#SBATCH -t 0-2:00:00
# Standard output is saved in this file
#SBATCH -o myjob_%A_%a.out
#
# Standard error messages are saved in this file
#SBATCH -e myjob_%A_%a.err
#
# set the $OMP_NUM_THREADS variable
ompthreads=$SLURM_JOB_CPUS_PER_NODE
export OMP_NUM_THREADS=$ompthreads
./myjobB
Этот сценарий также работает нормально, но только если сначала запускается jobA. Чтобы попытаться отправить оба этих задания, причем jobB зависит от jobA, я использовал следующий скрипт:
#!/bin/bash
FIRST=$(sbatch -p bigmem --mail-user=$USER@something.ac.uk jobA.sh)
echo $FIRST
SECOND=$(sbatch --dependency=afterany:$FIRST jobB.sh)
echo $SECOND
exit 0
, но это только первое и приходит с ошибкой 'sbatch: error: Невозможно открыть пакет файла' (у меня изначально был -p bigmem --mail и т. Д., Но я вынул его только для проверки). Проблема связана с частью --dependency, и после удаления все они отправляются, но мне нужно, чтобы jobB запускался после завершения jobA.