gpt4 book ai didi

slurm - 将系统变量插入 SBATCH

转载 作者:行者123 更新时间:2023-12-05 02:16:07 28 4
gpt4 key购买 nike

我想问一下是否可以将全局系统变量传递给#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 指令必须在任何其他 Bash 命令之前,Slurm 才能处理它们。

替代方法包括在命令行中设置参数:

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。另请注意,Bash 中的字符串连接不是使用 + 符号实现的。

关于slurm - 将系统变量插入 SBATCH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50735580/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com