5

太陽グリッド エンジン アレイ ジョブを実行しようとしていますが、タスクごとに異なる出力ファイルが必要です: test.1.out test.2.out など。

スクリプトを次のように書くと:

#!/bin/bash
#$ -S /bin/bash
#$ -N name
#$ -t 1-4000
#$ -o /home/myuser/out/test.$TASK_ID.out
#$ -e /home/myuser/err/test.$TASK_ID.err
#$ -cwd
#$ -V
<bash commands here>

ファイルは $TASK_ID.out (1.out、2.out など) と呼ばれ、/home/myuser/ にあります。

そして、次のようにスクリプトを書くと:

#!/bin/bash
#$ -S /bin/bash
#$ -N name
#$ -t 1-4000
#$ -o /home/myuser/out/
#$ -e /home/myuser/err/
#$ -cwd
#$ -V
<bash commands here>

ファイルは正しいフォルダーにありますが、明らかにデフォルト名: name.o$JOB_ID.$TASK_ID

私は何をすべきか?

4

2 に答える 2

3

特定の名前の出力ファイルをリアルタイムで書き込むことが重要な場合は、SGE の組み込みの出力コレクションを回避して、次のような bash コマンドを呼び出すことができます。

$command 1>>/home/myuser/out/test.$SGE_TASK_ID.out 2>>/home/myuser/err/test.$SGE_TASK_ID.err

stdout と stderr をキャプチャします。

両方の例は、あなたが望むものにかなり近いようです-事後に出力ファイルを単純に移動/名前変更しない理由はありますか?

于 2013-04-25T23:03:51.270 に答える