首页 > 解决方案 > slurm sbatch --output 和 --error 标志被忽略

问题描述

我目前在我的项目中使用 slurm,并且正在尝试运行一个非常简单的 hello world 作业。我想将我的标准输出和错误输出重定向到特定位置的特定文件。因此我使用了以下命令:sudo su -c 'sbatch /home/slurm/job.script --error=/home/slurm/job%j.out --output=/home/slurm/job%j.out' slurm. 但我完全被忽略了。他只是尝试(但由于没有权限而失败)创建一个发出命令的文件。我使用的是 Debian 10 vagrant box。我的 slurm 版本是 slurm-wlm 18.08.5-2 (来自 sinfo -V 的输出)

slurm作业文件:

#!/bin/sh
#SBATCH --time=1
srun -l /bin/hostname
srun -l /bin/pwd
srun -l echo "hello world"

slurm 配置文件:

ClusterName=slurm_cluster  # By default ClusterName=linux
ControlMachine=Kitsune
ControlAddr=172.16.0.20
#
SlurmUser=slurm
SlurmdUser=slurm
SlurmctldPort=6817
SlurmdPort=6818
AuthType=auth/munge
StateSaveLocation=/var/spool/slurm/ctld
SlurmdSpoolDir=/var/spool/slurm/d
SwitchType=switch/none
MpiDefault=none
SlurmctldPidFile=/var/run/slurm/slurmctld.pid
SlurmdPidFile=/var/run/slurm/slurmd.pid
ProctrackType=proctrack/pgid
ReturnToService=0

# TIMERS
SlurmctldTimeout=300
SlurmdTimeout=300
InactiveLimit=0
MinJobAge=300
KillWait=30
Waittime=0
#

DebugFlags=NO_CONF_HASH
# LOGGING
SlurmctldDebug=3
SlurmctldLogFile=/var/log/slurm-llnl/slurmctld.log
SlurmdDebug=3
SlurmdLogFile=/var/log/slurm-llnl/slurmd.log
JobCompType=jobcomp/none
#
# COMPUTE NODES
NodeName=worker1 NodeAddr=172.16.0.21 Port=6818 Procs=1 State=UNKNOWN
#NodeName=worker2 NodeAddr=172.16.0.22 Port=6818 Procs=1 State=UNKNOWN
PartitionName=debug Nodes=ALL Default=YES MaxTime=INFINITE State=UP

标签: slurmsbatch

解决方案


小心写字

sbatch /home/slurm/job.script --error=/home/slurm/job%j.out --output=/home/slurm/job%j.out

假设--error并且--output是 的参数job.script。尝试

sbatch --error=/home/slurm/job%j.out --output=/home/slurm/job%j.out /home/slurm/job.script 

推荐阅读