2014-07-15 5 views
1

작업 제출이 PBS로 관리되는 원격 클러스터에서 많은 작은 컴퓨팅 작업을 실행합니다. 일반적으로 PBS (bash는) 스크립트에서 나는 명령작업 제출 중에 PBS 큐를 동적으로 선택하는 방법

#PBS -q <queue_name>

나는 특정 큐의 부하에 따라 선택해야 할 작업 큐를 통해 작업을 제출하려는 큐를 지정합니다. 내가 작업을 제출하기 전에 때마다, 나는 터미널

나에게

Queue   Memory CPU Time Walltime Node Run Que Lm State 
---------------- ------ -------- -------- ---- --- --- -- ----- 
queue1   --  -- 03:00:00 -- 0 2 -- E R 
queue2   --  -- 06:00:00 -- 8 6 -- E R 

나는 대기열 선택을 자동화하고자 다음과 같이처럼 보이는 출력을 제공

qstat -q

의 명령을 통해이를 분석 두 제약 조건에 기반한 작업 스크립트에 의해

  1. 선택한 대기열은 지정된 작업 시간보다 더 긴 월이 있어야합니다. 작업 시간은 #PBS -l walltime=02:30:00 명령을 통해 지정됩니다.
  2. 대기열에 가장 적은 번호가 있어야합니다. 위의 출력에 표시된 것처럼 Que의 작업 수.
내가 나를 대기열 선택을 자동화하는 내가 터미널에서 사용할 필요가있는 도구를 식별하는 데 문제

답변

0

당신이 qstat를 실행하는 것이 다른 스크립트에 qsub를 제출 랩 수있다 -q, 출력을 구문 분석 한 다음 요청 된 walltime 및 각 대기열에있는 활성 작업 수에 따라 대기열을 선택합니다. 그런 다음 스크립트는 작업을 제출하고 qsub 명령 끝에 -q <name of desired queue>을 추가 할 수 있습니다.

그러나 적절한 정책을 갖춘 스케줄러가 수동으로 수행하려고하는 것으로 보입니다. 왜 동적으로 대기열을 전환해야합니까? 더 나은 설정은 대기열이 이미 walltime을 사용하여 작업을 본질적으로 분류 한 다음 스케줄러가 작업을 적절히 실행할 수있게하는 것입니다. 사용자가 큐를 신중하게 선택해야하는 설정은 나에게 조금 의심스러운 것 같습니다.