7

ジョブ スクリプトを PBS キューイング システムに送信する場合、ウォールタイムは自動的に指定されるか、ユーザーによって指定されます。

#PBS -l walltime=1:00:00

問題は、この時間にジョブ スクリプトからアクセスできるかどうかです。このウォールタイムを取得するための環境変数またはその他の方法はありますか。

最後に、ジョブ スクリプトは、キュー システムによってジョブが強制終了されないように、さらに作業を行うための十分な時間が残っているかどうかを時々判断する必要があります。

アップデート:

少なくともユーザーがリソース リストでウォールタイムを指定している場合は、次の回避策を提案できます (bash での作業)。

read _ _ PBS_WALLTIME  <<< `qstat -f $PBS_JOBID | grep "Resource_List.walltime"`

qstat 出力からウォールタイムを解析し、その値を PBS_WALLTIME 変数に入れます。したがって、コマンド

echo $PBS_WALLTIME

のようなものが得られます

1:00:00
4

2 に答える 2

1

私はこれに対する答えを探していましたが、上記のコメントはかなりうまくいくと思われるアイデアを私に与えてくれました。qstat を使用して、sed を使用して関連情報を取得できます。

qstat -f $PBS_JOBID | sed -rn 's/.*Resource_List.walltime = (.*)/\1/p'

これを PBS スクリプトに入れると値が出力され、標準の bash を使用してこの出力を変数に保存できます。

WALLTIME=$(qstat -f $PBS_JOBID | sed -rn 's/.*Resource_List.walltime = (.*)/\1/p')

これを使用して、ジョブに割り当てられたメモリの量やおそらくその他のものなど、PBS_* 環境変数からは利用できない他の情報を取得することもできます。

于 2014-04-07T14:07:21.310 に答える