システムの紹介 | 各種手続き | 使い方と注意事項 | アプリケーション一覧 | 講習会情報 | FAQ |
インタラクティブジョブの実行方法
ジョブの実行方法には、PBSなどのジョブスケジューリングツールを使って実行されるバッチジョブと、
直接実行するインタラクティブジョブがあります。
直接コマンドを実行直接コマンドを実行する場合には % rung09 test.com test.log (Gaussian09の場合)
のようにします。 ログアウト後も継続して実行させたい場合には、以下のように先頭に nohup を、最後に & を つけてください。実行時に出力される番号は、メモを取っておくことをお勧めします。 % nohup rung09 test.com test.log & [1] 113110 スクリプトの実行スクリプトを実行させる場合も、直接コマンド実行させる場合とほぼ同じです。 以下では、スクリプト名を test.csh とします。 % ./test.csh もし、上記で Permission denied と言われた場合には、以下のコマンドを実行して パーミッションを与えてください。 % chmod u+x ./test.csh
のようにします。 ログアウト後も継続して実行させたい場合には、以下のように先頭に nohup を、最後に & を つけてください。実行時に出力される番号は、メモを取っておくことをお勧めします。 % nohup ./test.csh & [1] 113110 PBSスクリプトの利用
これまで使われていたPBSのバッチスクリプトを利用することも可能です。 #!/bin/csh #PBS -q SMALL #PBS -N testjob cd $PBS_O_WORKDIR rung09 test001.com test001.log 次のように修正します。 #!/bin/csh #PBS -q SMALL #PBS -N testjob #cd $PBS_O_WORKDIR <---- 先頭に # をつける(コメントになります) rung09 test001.com test001.log そして、 % nohup ./test.qsub & [1] 113110 として実行します。実行時に出力される番号は、メモを取っておくことをお勧めします。 もし、上記で Permission denied と言われた場合には、以下のコマンドを実行して パーミッションを与えてください。 % chmod u+x ./test.qsub ジョブの停止& をつけてジョブを実行した場合の停止方法を紹介します。 % nohup ./g09.qsub & [1] 113110 実行直後に表示される番号ですが、上記では [1] がジョブ番号で、113110 がプロセス番号(PID)と呼ばれるものです。 ログアウトしていない場合ログアウトしていなければ、以下のように jobs コマンドを実行することでそのジョブの状況が表示されます。 % jobs [1] + Running ./g09.qsub この場合には、 % kill %1 ← % の後にジョブ番号を指定 のように、ジョブ番号を指定することでジョブを停止できます。 ログアウトした場合
ログアウトしてしまうと、jobs コマンドではジョブが参照できませんので、手順がやや複雑になります。
例えば、ユーザ fukumoto が g09.qsub というスクリプトのプロセス番号を探したい場合、
以下のコマンドで、親プロセスの番号を見つけます。 % ps -fu fukumoto | grep g09.qsub fukumoto 113110 1 0 15:57 ? 00:00:00 /bin/csh ./g09.qsub fukumoto 113375 113224 0 15:58 pts/9 00:00:00 grep g09.qsub とします。 この出力から、g09.qsub のジョブのプロセス番号は 113110 であることが分かります。 次に、pstree -p コマンドで、各ジョブのプロセス番号を確認します。 % pstree -p 113110 ← 親プロセスの番号を指定 g09.qsub(113110)───time(113118)───rung09(113119)───.g09(113126)───l502.exe(113127)─┬─{l502.exe}(113526) ├─{l502.exe}(113527) ├─{l502.exe}(113528) ├─{l502.exe}(113529) ├─{l502.exe}(113530) ├─{l502.exe}(113531) ├─{l502.exe}(113532) ├─{l502.exe}(113533) ├─{l502.exe}(113534) ├─{l502.exe}(113535) ├─{l502.exe}(113536) ├─{l502.exe}(113537) ├─{l502.exe}(113538) ├─{l502.exe}(113539) 上記プロセスを確実に削除するには、以下のように kill コマンドで削除します。 % kill -9 113110 113118 113119 113126 113127 ← l502.exe までのプロセス番号を指定 % pstree -pn 113526 ← 並列実行に生成されたプロセスの1つが無いことを確認 並列実行時には生成される子プロセスが多いため、その直前までのプロセスを kill すれば よいです。(場合によっては、1つ目もしくは2つ目までのプロセスだけを kill することでも済む場合がありますが、 その時にはそれ以降の子プロセスが存在しないことを確認してください。) ご不明な点などありましたら、スパコンシステムまでお問合せください。 |