Slurm提交作业时sbatch的--output与--error参数不生效问题
问题根因
你遇到的参数不生效问题是sbatch命令的参数位置错误导致的:所有sbatch的控制参数必须放在作业脚本路径之前,放在脚本路径之后的内容会被Slurm识别为传递给作业脚本本身的位置参数,不会被当成sbatch的调度参数处理,因此你设置的输出路径规则完全没有生效。
修复方案
调整命令中参数的顺序即可,修改后的提交命令如下:
sudo su -c 'sbatch --error=/home/slurm/job%j.out --output=/home/slurm/job%j.out /home/slurm/job.script' slurm
可选优化
你也可以直接把输出路径规则写到作业脚本的#SBATCH头配置中,提交作业时无需额外加参数,修改后的作业脚本如下:
#!/bin/sh #SBATCH --time=1 #SBATCH --output=/home/slurm/job%j.out #SBATCH --error=/home/slurm/job%j.out srun -l /bin/hostname srun -l /bin/pwd srun -l echo "hello world"
额外注意事项
请确保你指定的输出目录/home/slurm/对slurm用户开放读写权限,否则即使参数正确也会出现权限报错,可以执行以下命令设置目录权限:
sudo chown -R slurm:slurm /home/slurm/
内容的提问来源于stack exchange,提问作者Akira
相关产品推荐
相关产品推荐

