具体来说,cray需要一个嵌入在aprun
请求中的特殊命令(qsub
)来在批处理节点上执行作业(cray默认在没有aprun
语法的登录/计算节点上运行)。当手动键入对Cray Linux超级计算机的请求时,定向语法为:
qsub <qsub parameters> -V
aprun -n #CPUS /executable.exe param1 param2 ...
Ctrl-D
其中,用户在
qsub
之后(表示-V
语句中参数的传递)和可执行文件/参数集之后提供“return”。qsub
终止输入并执行Ctrl-D
命令。问题是,在bash脚本中输入
qsub/aprun
(简单地说就是Ctrl-D
)的方法有很多,但是它们都不能在EOF
-embeddedqsub
命令的上下文中工作。我需要做的是在一个脚本中对多个
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
的位置(在cd
和eof之间没有空格),aprun
在新行上,后面跟着一个带有EOF
语法的换行符,集合中的最后一个<<
没有前导qsub/aprun
,后面跟着一个换行符。此语法将在新的批处理节点作业提交中执行每个命令。脚本的输出将是请求的一系列作业ID。