首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向SBATCH插入系统变量

向SBATCH插入系统变量
EN

Stack Overflow用户
提问于 2018-06-07 07:43:50
回答 1查看 1.2K关注 0票数 3

我想问您是否可以将全局系统变量传递给#SBATCH标记。

我想做点这样的事

SBATCH文件

代码语言:javascript
复制
#!/bin/bash -l
ARG=64.dat
NODES=4
TASK_PER_NODE=8
NP=$((NODES*TASK_PER_NODE))

#SBATCH -J 'MPI'+'_'+$NODES+'_'+$TASK_PER_NODE
#SBATCH -N $NODES
#SBATCH --ntasks-per-node=$TASK_PER_NODE

这不是工作所以我才问你。

EN

回答 1

Stack Overflow用户

发布于 2018-06-07 08:56:49

请记住,SBATCH参数行被Bash视为注释,因此它根本不会试图解释它们。

此外,对于Slurm来说,#SBATCH指令必须在任何其他Bash命令之前为

其他方法包括在命令行中设置参数:

代码语言:javascript
复制
NODES=4 sbatch --nodes=$NODES ... submitscript.sh

或通过stdin传递提交脚本

代码语言:javascript
复制
#!/bin/bash -l
ARG=64.dat
NODES=4
TASK_PER_NODE=8
NP=$((NODES*TASK_PER_NODE))

sbatch <<EOT
#SBATCH -J "MPI_$NODES_$TASK_PER_NODE"
#SBATCH -N $NODES
#SBATCH --ntasks-per-node=$TASK_PER_NODE

srun ...

EOT

在后一种情况下,您需要运行提交脚本,而不是将其交给sbatch,因为它将自己运行sbatch。还请注意,Bash中的字符串连接不是用+符号实现的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50735580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档