具体来说,Cray需要在aprun
请求中嵌入一个特殊命令(qsub
)来在批处理节点上执行作业(Cray默认在没有{{1}的登录/计算节点上运行} 句法)。将aprun
请求手动键入Cray Linux超级计算机时,定向语法为:
qsub
用户在qsub <qsub parameters> -V
aprun -n #CPUS /executable.exe param1 param2 ...
Ctrl-D
(表示-V
语句中的参数通过)之后和可执行文件/参数集之后提供“返回”。 qsub
终止输入并执行Ctrl-D
命令。
问题是,网上描述了多种用于在BASH脚本中输入qsub/aprun
(简称Ctrl-D
)的方法,但它们都不能在EOF
- 嵌入式qsub
命令。
我需要做的是在单个脚本中为多个aprun
命令执行相同的语法。我如何在BASH中编写代码?
答案 0 :(得分:1)
解决方案语法为:
qsub/aprun
请注意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
的位置(&lt;&lt;和EOF之间没有空格),<<EOF
位于新行上,后跟带有cd
语法的换行符,集合中的最终aprun
没有前导EOF
,后跟换行符。
此语法将每个<<
命令执行到新的批处理节点作业提交中。脚本的输出将是所请求的一系列作业ID。