slurm - 将系统变量插入 SBATCH
问题描述
我想问你是否可以将全局系统变量传递给#SBATCH 标签。
我想做一些这样的想法
批次文件
#!/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
这不是workink,所以这就是我问你的原因。
解决方案
请记住,SBATCH
Bash 将参数行视为注释,因此它根本不会尝试解释它们。
此外,这些#SBATCH
指令必须在Slurm 处理它们的任何其他 Bash 命令之前。
替代方法包括在命令行中设置参数:
NODES=4 sbatch --nodes=$NODES ... submitscript.sh
或通过以下方式传递提交脚本stdin
:
#!/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
自行运行。
推荐阅读
- sql - 在重复项中选择值,在一列中没有最大值(Oracle)
- openshift-origin - 如何设置 Openshift Origin 路由器
- numpy - 如何为内存映射文件使用 CUDA 固定的“零拷贝”内存?
- vue.js - 如何使用 Vuejs 和 Axios 读取深度 JSON 数据
- java - 在 java 中用管道符号声明 int,int i = 1 | 2 | 3 | 4 | 5个;
- php - 使用 serialize() 表单提交重复发布数据
- javascript - 通过战网授权
- android - 使用 Google TextRecognizer 检测框内的文本
- excel - 从网页上的 span itemprop 中提取数据
- angular - 如何使用内置的角度 i18n 国际化 innerHtml