2016-07-28 5 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

을 작업이 qstat''에서 사라 경우, 그것이 당신을 의미 'keep_completed'를 늘릴 필요가 있습니다. 그렇지 않으면 조인 작업을 실행할 준비가되면 종속성이 충족되지 않으며 보류가 해제되지 않습니다. – clusterdude

+0

어떤 Torque 버전을 사용하고 있습니까? 이미 수정 된 버그가 발생할 수 있습니다. – dbeer

답변

0

조인 작업이 시작되면 서버는 여전히 종속 작업에 대해 알아야합니다. 그 중 하나가 qstat에서 사라진 경우 에 keep_completed을 늘려야합니다. 그렇지 않으면 조인 작업을 실행할 준비가되면 종속성이 충족되지 않으며 보류가 해제되지 않습니다.

확인하려면 $ qmgr -c 'print server keep_completed'

추가/수정 : $ qmgr -c 'set server keep_completed=300'

(. 나는 또한 당신이 대기열에 keep_completed을 설정할 수 있다고 생각)