slurm - 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
解决方案
小心写字
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
推荐阅读
- css - 有什么方法可以在 CSS 中使用自定义着色器吗?
- c# - 初始化 X 深度的递归 LIST
- python - 降价缩进列表段落中语法突出显示的代码块
- python-3.x - 需要使用 ib.sleep() 使用 ib_insync 发送多个订单
- c# - 列出客户端的所有 IP 地址和端口
- django - int() 参数必须是字符串,一个类似字节的对象,而不是 'ObjectId'
- c# - 如何将json转换为字典
- swift - 循环更新多个 Firestore 集合
- java - 即使使用 try 和 catch 语句,程序也会崩溃
- javascript - 反应 - 这显示填充状态,但 this.state 是空的