1

具体的には、Cray は、バッチ ノードでジョブを実行するためにaprun、リクエスト内に埋め込まれた特別なコマンド( Cray Linux スーパーコンピューターへのリクエストを手動でキー入力する場合、指定された構文は次のとおりです。qsubaprunqsub

qsub <qsub parameters> -V
aprun -n #CPUS /executable.exe param1 param2 ...
Ctrl-D

ユーザーが (ステートメント -V内のパラメーターの通過を示す) の後、および実行可能ファイル/パラメーター セットの後に「return」を提供する場所。入力を終了し、コマンドを実行します。qsubCtrl-Dqsub/aprun

問題は、 BASH スクリプトでCtrl-D(単に を意味するEOF) を入力するためのさまざまな方法がネット上で説明されていることですが、それらのいずれもqsub-embeddedaprunコマンドのコンテキストでは機能しません。

私がする必要があるqsub/aprunのは、1 つのスクリプトで複数のコマンドに対して同じ構文を実行することです。これを BASH でコーディングするにはどうすればよいですか?

4

1 に答える 1

1

ソリューションの構文は次のとおりです。

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 の間にスペースなし)に注意してください。 はcd新しい行にあり、その後にaprun構文を含む改行が続き、セットの最後EOFの部分には先頭の がなく<<、その後に改行が続きます。

この構文は、各qsub/aprunコマンドを新しいバッチ ノード ジョブの送信に実行します。スクリプトからの出力は、要求された一連のジョブ ID になります。

于 2016-11-11T15:30:27.223 に答える