matlab 将批处理作业提交到运行linux但没有slurm的服务器?

ha5z0ras  于 2022-12-13  发布在  Matlab
关注(0)|答案(1)|浏览(377)

bounty将在6天后过期。回答此问题可获得+50的声望奖励。phdstudent正在寻找标准答案

我曾经可以访问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(没有slurm)。所以sbatch命令不起作用。有什么办法做类似的事情吗?

b4qexyjb

b4qexyjb1#

如果“新服务器”是您要使用的集群的前端,该集群运行不同的批处理调度系统(SLURM有几种替代方案),那么您需要参考文档或sysadmin来确定新的批处理调度系统,然后阅读其文档。
如果新服务器只是一个交互式的分时Linux服务器(与批调度集群相反),那么您可以直接从命令行执行相同的脚本,而无需修改。#SBATCH指令格式的好处之一是它们只是bash的注解,当脚本由shell交互执行时将被忽略。
如果您的问题 * 实际上 * 是询问如何在后台运行脚本并将输出捕获到文件中(以类似于在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 &

相关问题