2016-08-26 7 views
2

イントロプロセスがコンピュータクラスタで実行されている間に標準出力にアクセスするにはどうすればよいですか?

私は.pbsファイルを経由して(qsub)ジョブを送信したコンピュータのクラスタを使用しています。デフォルトでは、標準出力と標準エラーを、qsubコマンドが実行された作業ディレクトリのファイルに出力します。私にとって

問題

問題は、私が直接でのプロセスの進展を監視することができるのが大好きだしながら、標準出力と標準エラー出力ファイルはプロセスの終了時にのみ表示されることです。

思考

私は、次のオプションは、標準出力と標準エラーの特定のファイル名と場所を示すために

#PBS -o 
#PBS -e 
#PBS -j [oe/eo] 

存在を知っています。しかし、2つのポイントは、私はかなり(#PBS -t経由)のアレイを使用した場合、それがどのように動作するか分からない...

  1. 私には不明です。 PBS_ARRAYIDの標準出力は以前の標準出力を上書きしますか?配列全体のすべての標準出力が同じファイルに出力されるか、ファイル名にPBS_ARRAYIDを含める方法がありますか?

  2. これらのオプションを使用すると、プロセスの終了前に標準出力にアクセスできますか?

プロセスは、コンピュータクラスタ上で提出されたときの処理が終わる前に、私は、標準出力と標準エラーを可視化することができますどのように質問

答えて

1

私が使用しているコンピュータクラスタでは、少なくとも標準出力は、処理の最後に#PBS -oに保存されたRAMに保存されています。これを回避する方法の1つは、シェルスクリプトの標準出力を明示的にリダイレクトすることです。

executable arguments >& StandardOutputs_${PBS_JOBNAME}.txt 
2

this documentationによると、配列ジョブ内の各タスクは、環境変数PBS_ARRAYIDセットを取得し、あなたがあなたの設定でそれを含めることができます

#PBS -o /path/for/$PBS_JOBNAME.$PBS_ARRAYID 

あなたのエンジンが源泉徴収されるだろう、なぜ私はわからないんだけどジョブが完了するまでファイルを出力します。 (私のグリッドエンジンはそうしません)おそらく、一時的な場所や一時的な名前の下にそれらを書き込んだり、仕事が終わったら移動したりするのでしょうか?

+0

ありがとうございました。すでに役に立ちました+1ありがとうございました。私の解決策を見つけて(投稿して)私のために終わりました。 –

関連する問題