PBS キューに送信するジョブがたくさんあり、出力は後でローカルで後処理されることになっています。ジョブは似ているので (手動でそれほど頻繁に変更したくありません)、ローカルで PBS ジョブ スクリプトを生成してからジョブを送信する bash スクリプトを自分で作成しました。私の質問は次のとおりです。PBS ジョブが終了するまで bash スクリプトを待機させてから、後処理を開始するにはどうすればよいですか? (ジョブのステータスを常にチェックすることはオプションではありません。) これを行うにはどのような可能性がありますか?
すべてのヒント、ヒント、または解決策に感謝します!
編集:コメント(感謝)に示されているように、いくつかの編集:
- PBS = ポータブル バッチ システム
- ドキュメントはこちらから入手できます: http://resources.altair.com/pbs/documentation/support/PBSProUserGuide12.1.pdf
- 考えられる解決策について考えたところ、うまくいかない次の解決策を思いつきました。私の bash スクリプトは、ジョブのウォール クロック タイムとして要求された時間だけ待機することができました。ただし、複雑な問題が 2 つあります。1 つ目は、ジョブにそれほど時間がかからず、早期に終了する可能性があるため、bash スクリプトの待機時間が長すぎることです。次に、ジョブがキューに入れられ、すぐには実行されない可能性があるため、bash スクリプトの待機時間が短すぎる可能性があります。
編集 2: 以下に示すように常にインタラクティブに実行できるかどうかわからないので、次のことを考えました: 終了直前に PBS ジョブ スクリプトで (空の) ファイルを作成します。私のbashスクリプトは、(whileループを使用して)そのファイルが存在するかどうかを(たとえば)数分ごとにチェックします。存在する場合、ジョブが終了したことがわかり、作成したばかりの (空の) ファイルを削除することで後処理を開始できます。このように、最大数分の遅延しかなく、実際にはリソースは必要ありません。これは間違いなく理想的ではありませんが、一種の回避策です。より実用的なアイデアは高く評価されます。
PBS に直接関係なくても、どんな考えでも大歓迎です。
カリ