我在 AWS 集群上使用 slurm,并编写了一个似乎不起作用的执行脚本。如果我自己运行脚本,它运行良好。但是,当使用sbatch
运行时,它不起作用。
我使用以下代码调用sbatch
:
for sample in `cat url.txt`;
do sudo /opt/slurm/bin/sbatch ./slurm_script.sh $sample;
sleep 1;
done
脚本slurm_script.sh
包含一个很长的生物信息学管道。它自己调用时确实有效 [ bash slurm_script.sh someString
]
它输出到主节点:
Submitted batch job 2
Submitted batch job 3
Submitted batch job 4
Submitted batch job 5
...
但是当我通过 ssh 进入任何计算节点时,没有正在运行的进程。也不会创建任何文件。有什么想法吗?
我花了一些时间来弄清楚这一点,但是在运行脚本之前,slurm的错误和out目录没有在正确的文件夹中创建。我在 ~/slurm_out 和 ~/slurm_error 中创建了这些目录。但是,在建议下运行以下内容后@Poshi
scontrol show job
我看到 slurm 正在以下目录中查找这些:
...
WorkDir=/scratch/missing
StdErr=/scratch/missing/slurm_error/error_85.txt
StdIn=/dev/null
StdOut=/scratch/missing/slurm_out/output_85.txt
Power=
...
在 slurm 查找的目录中创建slurm_error
和slurm_out
后,脚本开始运行!