2016-07-28 27 views
2

他の作業が完了したら、pbsスクリプトを起動します。そのために、私はこのコマンドを使用します:すでに完了しているジョブを待つ

$ job1=$(qsub job1.pbs) 
$ jobN=$(qsub jobN.pbs) 
$ qsub -W depend=afterok:$job1:$jobN join.pbs 

これはほとんどの場合、機能します。しかし、job1とjobNがすでに終了しているときに結合スクリプトを実行すると、すでに完了したジョブが終了するのを待っているので、無期限にアイドル状態になります。それは狂ったように聞こえるが、これは何が起こるかである。私はqstatを実行する場合、私は私の入社ジョブが(「H」)

$ qstat -u me 
Job ID   Username Queue Jobname SessID NDS TSK Memory Time S Time 
--------------- -------- -------- ---------- ------ --- --- ------ ----- - ----- 
1990613   me workq join.pbs  -- 1 1 -- -- H -- 

しかし仕事の少なくとも一方がまだ実行されている場合は、他がすでに終了しているが、その後、参加スクリプト開催されていることをはっきりと見ることができますアイドルにならずに終了します。

だからすでに終了しているジョブを処理するソリューションは何ですか?私たちは明らかにこの仕事を終わらせる必要があります。

+0

を、それがあなたを意味'keep_completed'を増やす必要があります。そうしないと、結合ジョブの実行準備が整うと、依存関係は決して満たされず、保留は解放されません。 – clusterdude

+0

使用しているTorqueのバージョンは何ですか?既に修正されているバグが発生している可能性があります。 – dbeer

答えて

0

ジョイン・ジョブが開始されると、サーバーは従属ジョブについても認識する必要があります。どちらかがqstatから消えた場合は、qmgrkeep_completedを増やす必要があります。そうしないと、結合ジョブの実行準備が整うと、依存関係は決して満たされず、保留は解放されません。

確認するには:$ qmgr -c 'print server keep_completed'

を変更/追加するには、次のジョブがqstat` `からなくなっている場合は$ qmgr -c 'set server keep_completed=300'

(。私もあなたがキューにkeep_completedを設定することができると信じて)

関連する問題