# Deadline Group And Pool Setting ###### tags: `Deadline` `Rules` [TOC] ## 壹.Group 和 Pool定義 - Group: 是根據電腦是否擁有這套軟體的授權而去做設定。簡單來說**設定group的電腦決定<font color="#f00">會或不會</font>被抓去算圖**。 :::info *.公司某幾台電腦有安裝AE單機版授權的Reduce Noise plugin,就根據這些做group設定。 *.很多電腦都有floating render license,也可以根據性能高和中的電腦做group設定。並搭配Resource Limit做license的數量控制。 ::: - Pool: 會根據電腦pool排序設定決定哪個job先算,不管是設定那些group。設定方式會依照緊急狀況,專案,電腦效能來做優先排序。**設定pool的電腦決定<font color="#f00">優先順序</font>被抓去算圖**。 :::info *.如果同時有3個專案正在執行,就要決定這3個案子的優先順序。例如:某電腦pool設定順序是sjia,ach,fotw,就代表這台電腦優先算圖順序sjia > ach > fotw。 ::: ## 貳.Group和Pool算圖的流程跟舉例 - 一個job submit之後,Deadline第一件事情是根據Group設定去做哪些電腦能算,哪些電腦不可以算。 - 接著Deadline會調配job會先先被那些機器接去算圖。下圖為公司設定的優先順序的大項比較。 ![](https://i.imgur.com/RB5znGN.png) - 排序大項**第一個根據pool排序**做優先分配。如果有海量的job等待算圖,會根據pool的細部排序設定做優先分配。例如上述的專案sjia,ach,fotw。 - 排序大項**第二個根據priority排序**做優先分配。當海量的job設定同樣的pool時,deadline就會依照priority的數字大小比較。例如很多job都設定ach pool,接著就會根據submit指定的priority數字高低做分配。 - 排序大項**第三個根據first-in first-out排序**做優先分配。當海量的job設定同樣的pool和priority時,就會依照submit的時間做優先分配,越早submit的job越優先被算。 - 結論簡單一句,當海量的job在線上時,會先分配group電腦,再決定算圖優先順序。就很像便當來時,會先分葷跟素的group,再分配要先吃菜,飯,湯的吃的順序。 ## 叁.智崴目前的group設定 - 目前有ae,ai,houdini_FX,houdini_mantra,maya_vray,nuke,vr的group(之後會再有動態的調整)。 - ae: 日後會在分割出ae單機版的plugin的group。 - ai: AI放大的機器group(5台)。(Topaz Video Enhance AI) - houdini_FX: floating render(2個) - houdini_mantra: floating render(40個) - maya_vray: floating render(10個),小寶欽點算圖機10台和些許工作機。 - nuke: floating render(16個),多多精選算圖機10台和些許工作機。 - vr: 調查中... ## 肆.智崴目前的pool設定 - 目前的規劃是三種性質做設定,依照緊急程度,依照專案優先度,依照電腦等級。 - **緊急程度:** pool的最前面為\_\_emergency__,其次,效能強的算圖機10台emerg和工作機數台emerg_bullpen,pool的最後面為research。<font color="#f00">**選擇emerg的時機為排除萬難就是急著要交檔的救護車緊急通道,或是圖算很快不太會影響其他人的情況。**</font>**選擇research的時機為測試或研究使用,優先讓給其他專案pool先算**,博愛座的概念(沒人坐,你可以坐)。 - **專案優先:** 會跟PM們溝通並做確認哪個專案比較需要先算出來,決定先後順序。目前順序就是**sjia,ach,fotw**。 - **電腦等級:** 目前有10台神等級的算圖機器大家搶著要用,其餘user工作機的算圖大家興致缺缺,**所以算圖機最前面有個XXX pool**,**user工作機最前面有個XXX_bullpen pool(牛棚)**,例如:如果算圖急到牛棚也要跟著下海,submit job就可以pool指定emerg,second pool指定emerg_bullpen。如下圖所示。 ![](https://i.imgur.com/K3TRkjP.png) 或是指定專案時,優先算10台算圖機,算圖機搶完的話就撿剩下的工作機算圖。 ![](https://i.imgur.com/YdZocQ6.png) - 目前pool設定列表 - 算圖機: emerg,aot,focn,fotw,reserch - 工作機: emerg_bullpen,aot_bullpen,ach_bullpen,fotw_bullpen,reserch - :::info 課後小練習: 算圖機的pool順序公式: <font color="#f00">\_\_emergency__,emerg,眾多專案排序,reserch。</font> 工作機的pool順序公式: <font color="#f00">\_\_emergency__,emerg_bullpen,眾多專案排序_bullpen,reserch。</font> ```graphviz digraph hierarchy { nodesep=1.0 // increases the separation between nodes rankdir=LR node [color=Red,fontname=Courier,shape=box] //All nodes will this shape and colour edge [color=Blue, style=dashed] //All the lines look like this __emergency__->{emerg emerg_bullpen} emerg->{眾多專案排序} 眾多專案排序->{reserch} emerg_bullpen->{眾多專案排序_bullpen} 眾多專案排序_bullpen->reserch_bullpen } ``` ::: - 以上submit 設定怎樣的pool,請摸著良心submit job,公道自在人心。 ## 伍.未來彈性的調整 - ## 陸.一些後續碎碎念... - 送算圖 **"FFmpeg"**、**"FFmpegImgMultiRender"**、**"ImageMagic"** 時,**Group**可以選擇**None**。 - Group的**None**是匡列所有deadline worker上線的電腦,無須設定。 - 因為上述3套軟體都是放在NAS(server),是免安裝,所以任何deadline上線和可以連線NAS的電腦接可加入算圖。 - 送算圖時**Pool一定要選擇指定內容**,**不能選None**。Second Pool選None是可以的。(選pool 選none會壞了遊戲規則) - pool None是預設最後一個順位的,是看不見的。(下表用刪除線代表) - 想像一個狀況,同事A和B各丟了一個Job,同事A的算圖很急要,同事B算圖不急。 - 同事A送算團第一個Pool設定了emerg,依下表的設定就會先搶**所有的效能強的算圖機**,Second Pool選擇了emerg_bullpen,也意思就是搶光了算圖機,再撿剩下的效能普通的工作機;同事B送算團Pool跟Second Pool都設定了None,目的是撿剩下的。 - 依上面情況,當兩個job同時在跑會造成一個悲劇...同事A拿到的全部都是算團機器,工作機全部都被同事B拿走。並非預想的同事A算圖機全拿,工作機也拿到滿,工作機剩餘的才給同事B。 - job在搶機器的流程是,同事A和B的job pool先比較完並分完機器,再去比較job的second pool去分機器。依照上面狀況deadline的流程就會這樣跑: 1. 同事A的job因為pool設定emerg,所以優先搶走算圖機。 2. 同事B的job因為pool設定none,因為算圖機搶光了,所以只能抓工作機的最後順位none。 3. 同事A的job因為second pool設定emerg_bullpen,但第2步驟已經先被強佔走了,所以沒有機器可以抓。 4. 同事B的job因為second pool設定none,因為沒機器,也就只能再排隊。 | Machine | Assigned Pools | | -------- | -------- | | 算圖機 | \_\_emergency__,emerg,aot,focn,kls,reserch,~~*None*~~ | | 工作機 | \_\_emergency__,emerg_bullpen,aot_bullpen,focn_bullpen,kls_bullpen,reserch,~~*None*~~ | - License Limit要設定正確。 - 假如有20台算團機,maya_vray license數量上限是10台。同事A先丟了nuke Job,並設定錯了成maya_vray limit,搶了7台算圖機;同事B後丟了maya_vray Job,並設定正確的maya_vray limit。這樣會導致一個結果,同事A占了7台電腦算nuke,dealine maya_vray license limits的數量也同時增加為數量7(不管你是丟什麼類型job,只認你指定的limit),這樣就會導致後來同事B只能拿到3台機器算圖而已(10-7=3)。 - 呈上面案例,如果同事A設定對的nuke limit,一樣可以先搶到7台機器,後面同事B丟的nuke job就可以正常的拿到10台機器算圖。 - 如果你丟的job類型是沒有License的限制,就請勿指定License Limits。影響到其他正在使用的license數量統計。