一種可變并行作業的資源分配方法
【技術領域】
[0001] 本發明屬于高性能計算技術領域,更具體地,涉及一種可變并行作業的資源分配 方法。
【背景技術】
[0002] 作業調度在高性能計算中心一直是一個重要的研宄課題。調度算法的好壞直接影 響著整個集群的系統性能以及用戶體驗。在以往的高性能計算中心,用戶往往需要為提交 的作業指定一定的資源,并且該資源一經提交到系統就不可更改。這種由用戶唯一指定一 組資源數的作業叫做嚴格作業(rigid job)。在嚴格作業調度算法中最經典也最被廣泛應 用的就是先到先服務(FCFS)調度算法。在FCFS調度算法中,調度器根據用戶指定的作業 所需資源數,通過排隊先后順序對作業進行調度。該算法實現簡單,并因為根據作業提交的 順序調度作業,也保證了作業一定的公平性。然而,FCFS調度算法被證明會使系統產生大 量空閑資源。在FCFS調度算法中,如果隊頭的作業所需資源數大于系統當前能夠提供的資 源數,則該作業就會一直等待直到有足夠的資源供其運行,而系統當前的空余資源也不能 給其他作業使用,使得空余的資源無法得到合理的利用。
[0003] 為了解決FCFS調度算法性能低下的缺點,研宄者們提出了短作業優先(shortest job first)調度策略。短作業優先調度策略每次都選擇運行時間最短的作業調度,有效的 減少了空閑資源的產生,然而短作業優先調度策略會推遲大作業的開始運行時間,極端情 況下還會出現大作業餓死的現象。另外一種解決FCFS調度算法性能問題的調度算法是回 填(backfilling)調度算法。回填調度算法在保證調度公平性的前提下,能夠提升系統性 能。其中最出名的算法就是保守回填(conservative backfilling)調度算法和激進回填 (aggressive backfilling)調度算法。在保守回填調度算法中,隊列中的每一個作業都要 被指定一個開始時間,當系統有空閑資源的時候,后面的作業在不會影響其之前的所有作 業的開始時間的情況下,該作業才可以被回填到前面的空閑資源中去,也即利用該空閑資 源。而激進調度算法僅為隊頭作業指定一個開始時間,當有空余資源可用時,在后面的低優 先級作業不會推遲隊頭作業開始運行時間的前提下,可以跳到隊頭作業前面運行。
[0004] 然而回填調度算法的初衷是減少FCFS調度算法所產生的空閑資源,并不能完全 消去空閑資源。且回填調度算法的性能很大程度上取決于作業運行時間的預測準確性。對 作業運行時間的低估預測可能會使回填作業沒有在規定時間內運行完而被殺死;對作業運 行時間的高估又使得本該被回填的作業失去了回填的機會。這兩種情況都致使系統的性能 得到下降。
[0005] 可變并行作業(moldable job)不同于嚴格作業,可變并行作業調度允許用戶或者 系統指定多組處理器數給作業,在作業運行之前可以根據一定的算法確定該作業的處理器 數。由于其在選擇處理器數上有更自由的空間,可以根據當前的系統負載或者其他一些系 統信息對作業處理器數進行選取,從而能夠縮短作業的等待時間或者運行時間,達到更好 的調度效果。也就是說,可變并行作業的調度除了要和嚴格作業調度一樣確定調度算法之 外,還要擁有一個資源分配算法。
[0006] 然而,在可變并行作業調度中,如何合理的為每個作業分配資源是一個很大的挑 戰。資源分配策略的好壞直接影響著整個系統的性能。現有的可變并行作業調度中的貪心 策略,每次都選擇能盡可能多的處理器分配給作業,該算法相比于保守回填策略,能一定程 度上提高系統性能,但是卻損害了小作業的性能。另一個策略就是公平分享策略,針對于貪 心策略的不足,提出了根據作業權重分配資源,但是只考慮了公平性問題,而沒有過多的關 注調度性能的提高。因此,當前可變并行作業中的資源分配策略還有很大空間值得去研宄。
【發明內容】
[0007] 針對現有技術的以上缺陷或改進需求,本發明提供一種可變并行作業的資源分配 方法,其目的在于提高系統的性能,縮短作業平均周轉時間,由此解決可變并行作業調度系 統中資源分配算法效率低下的技術問題。
[0008] 本發明提供一種可變并行作業的資源分配方法,包括以下步驟:
[0009] 步驟1集群管理者根據集群負載狀況設置參數a和threshold,其中,所述參數a 表示在本輪分配中可分配處理器占總的處理器數量的百分比;所述參數threshold表示在 本輪分配中每個作業所能分配的處理器占總的處理器數量的百分比;
[0010] 步驟2將等待隊列中每一個作業的處理器數Xi均初始化為1 ;
[0011] 步驟3查看待分配處理器是否分配完,如果分配完則流程結束,否則執行步驟4 ;
[0012] 步驟4計算每個作業的RP值,并找出RP值最大的作業,其中,RP值表示增加一個 處理器后每個作業所獲得縮短時間收益的指標,所述步驟4包括以下子步驟:
[0013] (4-1)根據Downey模型以及知識庫的參數,計算每個作業1在當前處理器數X 4寸 的運行時間A Oi);
[0014] (4-2)根據所述Downey模型以及所述知識庫的參數,計算每個作業Ji在當前處理 器數加1時的運行時間+ 1);
[0015] (4-3)計算每個作業1在當前處理器數時候的+1),并 找出RP值最大的作業;
[0016] 步驟5判斷所述RP值最大的作業分配的處理器數量是否達到處理器分配閾值,如 果是則將所述RP值最大的作業從待分配處理器的隊列中去除,然后執行步驟3 ;否則將一 個處理器分配給所述RP值最大的作業,然后執行步驟3。
[0017] 總體而言,通過本發明所構思的以上技術方案與現有技術相比,具有以下有益效 果:
[0018] (1)用戶友好:本發明無需用戶指定作業所需處理器數以及作業運行時間,既避 免了用戶預測作業所需資源的準確性問題,也省去了用戶指定資源的麻煩;
[0019] (2)提高系統利用率:現有的嚴格作業調度在作業提交前指定了處理器數,不能 根據系統負載情況調整作業處理器數。而本發明結合的調度算法是在作業提交后根據系統 負載情況分配作業處理器數,分配方式更加靈活,且考慮了系統負載,能夠減少平均作業周 轉時間,獲得更好的系統性能。
【附圖說明】
[0020]