繁体   English   中英

使用 linux 将批处理作业提交到服务器,但没有 slurm?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM