2012-11-28 7 views
1

작업 스케줄링을 위해 PBS/Torque를 사용하는 계산 클러스터로 작업하고 있습니다. 대기열은 꽤 오래있을 수 있습니다. 예를 들어, 이제는 800 개의 대기열에 몇 가지 작업이 제출되었습니다 (전체 작업 목록을 보여주는 showq에 의해보고 됨). 그러나 이것이 필자가 아는 한 반드시 반드시 그런 것은 아닙니다. 실행 순서대로).PBS 대기열에서 작업 장소를 결정하는 방법은 무엇입니까?

내 작업이 대기열의 어느 위치에 있는지 알고 싶습니다. 얼마나 많은 사람들이 내 앞에 처리 될 것인가? 나는 같은 출력을 얻고 싶습니다 : Job <id>: 417/862. 이 방법으로 나는 적어도 진도와 대기 시간에 대한 징후가있을 것이다. 그러나, 나는 이것을 어떻게하는지 알 수 없었다. 그것을 할 수 있고, 어떻게 할 수 있습니까?

+1

그러나 나는'showq' 나'qstat' ('showq'는 실제로 Maui 명령입니다)의 출력을 처리하는 스크립트를 작성하고 싶습니다. (필자는 Perl을 사용하고 싶습니다.) –

답변

0

지연된 작업이 showq에 의해 표시된 순서대로 실행된다는 것을 믿을 수 있는지 확신 할 수 없지만 몇 가지 추가 조사가 끝난 후에는 확실히 그 것처럼 보입니다.

showq 인쇄 큐의 형식은 다음과 같습니다이 형식을 바탕으로

ACTIVE JOBS-------- 
[table headers] 
[listing of active jobs] 
IDLE JOBS-------- 
[table headers] 
[listing of idle jobs] 
BLOCKED JOBS---------- 
[table headers] 
[listing of blocked jobs] 

, 나는 큐의 유휴 섹션에서 작업의 장소를 찾으려면 다음 bash는 스크립트를 내놓았다 주어진을 작업의 ID :

job=$1 

idlestart=`showq | grep "IDLE JOBS" -n | cut -d: -f1` 

jobline=`showq | grep -n $job | cut -d: -f1` 
place=`expr $jobline - $idlestart - 2` 

echo "Idle Jobs section starts at line $idlestart" 
echo "Job $job at line $jobline" 
echo "Place in queue: $place" 

출력 예 : I가에 PBS/토크를 사용하지 않은

$ ./placeinq 6565618 

Idle Jobs section starts at line 343 
Job 6565618 at line 387 
Place in queue: 42 
관련 문제