[[TORQUE]]

既に計算ノードで&color(magenta){計算中};で、かつリソース的な余裕がなくても
強制的にその先行ジョブを&color(darkmagenta){''suspend''};にさせて、別のジョブを流す。



torque-4.2.10 + maui-3.3.1 環境です(&size(10){インストールは[[TORQUE]]参照};)

***maui.cfg [#q6407027]
重要なことは下記の三つかな
-項目&color(orangered){PREEMPTPOLICY};の値を&color(darkmagenta){''SUSPEND''};にして、
-&color(darkmagenta){''suspend''};対象となりえるフラグ''PREEMPTEE''と、割り込みできるフラグ''PREEMPTOR''を用意して、
-項目&color(orangered){PREEMPTPOLICY};の値を&color(darkmagenta){''SUSPEND''};にする
-&color(darkmagenta){''suspend''};対象となりえるフラグ''PREEMPTEE''と、割り込みできるフラグ''PREEMPTOR''を用意する
-各優先順位(job credentials、fairshare usage、requested job resources、current service levels、target service levels、consumed resources)の何れか一つが定義されている
&size(10){(優劣がないと&color(darkmagenta){suspend};になってくれない)};



下記は job credentials を念頭に各優先順位付けを行っている。
&color(darkgreen){QOSWEIGHT};と&color(darkgreen){CLASSWEIGHT};は係数で、掛かる値は &color(red){PRIORITY};である。
最後のほうにある''CLASSCFG''で、Torqeu qmgrで定義されるキュー名と繋げている。

#code(nonumber){{
[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 ~]#
}}

***qmgr [#k8cc2779]
キューの定義は全計算ノードを使用する2つのキュー(hiとlow)を作成している

#code(nonumber){{
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
}}


***テスト実行 [#q3d127a0]

キュー名「low」のジョブを投入して、計算が開始された跡に、「hi」のキューを投げたとところ。

#code(nonumber){{
[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」は&color(darkmagenta){''suspend''};になる。

#code(nonumber){{
[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」のジョブが優先的に実行された。
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS