既に計算ノードで計算中で、かつリソース的な余裕がなくても
強制的にその先行ジョブをsuspendにさせて、別のジョブを流す。
torque-4.2.10 + maui-3.3.1 環境です(インストールはTORQUE参照)
重要なことは下記の三つかな
下記は job credentials を念頭に各優先順位付けを行っている。
QOSWEIGHTとCLASSWEIGHTは係数で、掛かる値は PRIORITYである。
最後のほうにあるCLASSCFGで、Torqeu qmgrで定義されるキュー名と繋げている。
[root@pbs ~]# cat /usr/local/maui/maui.cfg
# maui.cfg 3.3.1
SERVERHOST pbs.sybyl.local
ADMIN1 root
RMCFG[PBS.SYBYL.LOCAL] TYPE=PBS
SERVERPORT 42559
SERVERMODE NORMAL
RMPOLLINTERVAL 00:00:30
# log file
LOGFILE maui.log
LOGFILEMAXSIZE 10000000
LOGLEVEL 3
NODEACCESSPOLICY shared
DEFERTIME 00:01:00
PREEMPTPOLICY SUSPEND
BACKFILLPOLICY FIRSTFIT
RESERVATIONPOLICY CURRENTHIGHEST
NODEALLOCATIONPOLICY MINRESOURCE
QOSWEIGHT 1
QOSCFG[quick] PRIORITY=100 QFLAGS=PREEMPTOR
QOSCFG[slow] PRIORITY=10 QFLAGS=PREEMPTEE
CLASSWEIGHT 1
CLASSCFG[hi] QDEF=quick
CLASSCFG[low] QDEF=slow
[root@pbs ~]#キューの定義は全計算ノードを使用する2つのキュー(hiとlow)を作成している
create queue hi
set queue hi queue_type = Execution
set queue hi resources_default.cput = 480:00:01
set queue hi resources_default.nodes = 1
set queue hi resources_default.walltime = 240:00:00
set queue hi enabled = True
set queue hi started = True
create queue low
set queue low queue_type = Execution
set queue low resources_default.cput = 480:00:01
set queue low resources_default.nodes = 1
set queue low resources_default.walltime = 240:00:00
set queue low enabled = True
set queue low started = Trueキュー名「low」のジョブを投入して、計算が開始された跡に、「hi」のキューを投げたとところ。
[root@pbs maui]# qstat -n
pbs.sybyl.local:
Req'd Req'd Elap
Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time
----------------------- ----------- -------- ---------------- ------ ----- ------ ------ --------- - ---------
86.pbs.sybyl.local illya low test.sh 0 3 3 -- 480:00:01 R --
n3+n2+n1
87.pbs.sybyl.local illya hi hi.sh -- 3 3 -- 480:00:01 Q --
--
[root@pbs maui]#この瞬間までは n1、n2、n3の3台を使って計算していた。
暫くすると、優先順位の見積もりなおしが行われ(maui.cfgのRMPOLLINTERVALの間隔で)、
キュー名「hi」のジョブが優先とされ、下位に属する「low」はsuspendになる。
[root@pbs maui]# qstat -n
pbs.sybyl.local:
Req'd Req'd Elap
Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time
----------------------- ----------- -------- ---------------- ------ ----- ------ ------ --------- - ---------
86.pbs.sybyl.local illya low test.sh 0 3 3 -- 480:00:01 S --
n3+n2+n1
87.pbs.sybyl.local illya hi hi.sh 0 3 3 -- 480:00:01 R --
n3+n2+n1
[root@pbs maui]#キュー名「hi」のジョブが優先的に実行された。