在 Cray 系统 运行 Linux 上,如何在自动 BASH 脚本中使用 aprun 提交多个 qsub 请求?
On Cray systems running Linux, how can I submit multiple qsub requests using aprun in an automated BASH script?
具体来说,Cray 需要在 qsub
请求中嵌入一个特殊命令 (aprun
) 以在批处理节点上执行作业(Cray 默认为 运行 login/compute 没有 aprun
语法的节点)。当向 Cray Linux 超级计算机手动输入 qsub
请求时,定向语法为:
qsub <qsub parameters> -V
aprun -n #CPUS /executable.exe param1 param2 ...
Ctrl-D
用户在-V
(表示在qsub
语句中传递参数)和executable/parameter集之后提供'return'。 Ctrl-D
终止输入并执行 qsub/aprun
命令。
问题是,网上描述了多种在 BASH 脚本中输入 Ctrl-D
(即 EOF
)的方法,但是 none 他们在 qsub
-embedded aprun
命令的上下文中工作。
我需要做的是在单个脚本中对多个 qsub/aprun
命令执行相同的语法。如何在 BASH 中编码?
解决语法是:
qsub <qsub parameters> -V <<EOF
cd
aprun -n #CPUS /executable.exe param1 param2 ...
EOF
qsub <qsub parameters> -V <<EOF
cd
aprun -n #CPUS /executable.exe param1 param2 ...
EOF
注意 <<EOF
的位置(<< 和 EOF 之间没有 space),cd
在一个新行上,然后是一个带有 [=13 的换行符=] 语法和集合中最后的 EOF
没有前导 <<
,后跟换行符。
此语法将每个 qsub/aprun
命令执行到新的批处理节点作业提交中。脚本的输出将是请求的作业 ID 系列。
具体来说,Cray 需要在 qsub
请求中嵌入一个特殊命令 (aprun
) 以在批处理节点上执行作业(Cray 默认为 运行 login/compute 没有 aprun
语法的节点)。当向 Cray Linux 超级计算机手动输入 qsub
请求时,定向语法为:
qsub <qsub parameters> -V
aprun -n #CPUS /executable.exe param1 param2 ...
Ctrl-D
用户在-V
(表示在qsub
语句中传递参数)和executable/parameter集之后提供'return'。 Ctrl-D
终止输入并执行 qsub/aprun
命令。
问题是,网上描述了多种在 BASH 脚本中输入 Ctrl-D
(即 EOF
)的方法,但是 none 他们在 qsub
-embedded aprun
命令的上下文中工作。
我需要做的是在单个脚本中对多个 qsub/aprun
命令执行相同的语法。如何在 BASH 中编码?
解决语法是:
qsub <qsub parameters> -V <<EOF
cd
aprun -n #CPUS /executable.exe param1 param2 ...
EOF
qsub <qsub parameters> -V <<EOF
cd
aprun -n #CPUS /executable.exe param1 param2 ...
EOF
注意 <<EOF
的位置(<< 和 EOF 之间没有 space),cd
在一个新行上,然后是一个带有 [=13 的换行符=] 语法和集合中最后的 EOF
没有前导 <<
,后跟换行符。
此语法将每个 qsub/aprun
命令执行到新的批处理节点作业提交中。脚本的输出将是请求的作业 ID 系列。