[英]Submit batch job to a server with linux but no slurm?
我曾经可以访问一个 slurm 服务器,我会在其中提交以下批处理作业:
#!/bin/bash
#SBATCH --job-name=sdmodel
#SBATCH --output=logs/out/%a
#SBATCH --error=logs/err/%a
#SBATCH --nodes=1
#SBATCH --partition=common,scavenger
#SBATCH -c 10
#SBATCH --mem-per-cpu=12GB
#SBATCH --array=1-236
module load Matlab/R2021a
matlab -nodisplay -r "run('main.m'); exit"
现在,新服务器只是 linux(没有杂音)。 所以 sbatch 命令不起作用。 反正有做类似的事情吗?
如果“新服务器”是您要使用的集群的前端,该集群运行不同的批处理调度系统(那里有多种 SLURM 替代方案),那么您需要查阅文档或系统管理员来识别新批处理调度系统,然后阅读它的文档。
如果新服务器只是一个交互式分时 Linux 服务器(而不是批处理集群),那么您可以直接从命令行执行相同的脚本而不修改。 #SBATCH
指令格式的好处之一是它们只是对bash
的注释,当脚本由 shell 交互式执行时将被忽略。
如果您的问题实际上是询问如何在后台运行脚本并将 output 捕获到文件中(以类似于在 SLURM 下执行脚本的方式),您可以尝试如下命令(假设上面的脚本名为myscript.sh
):
$ mkdir -p logs/{out,err}
$ id=`date +%Y-%m-%d_%H:%M:%S` ; echo "Running $id" ; nohup myscript.sh >logs/out/$id 2>logs/err/$id &
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.