部署到nodel上。部署完jobl,三個節(jié)點的資源能力分別是(2G,3)、(1G,3.5)、(4G,2)。
[0039]圖2 的(b) job 2 中,調度 job2,將 task2_l 部署到 node2,task2_2 部署到 nodel,task2-3部署到node3上,此時三個節(jié)點的資源能力分別是(1.5G,2.5)、(0G,3)、(3.5G,1.5)0
[0040]圖2 的(c) job3 中,調度 job3,將 task3_l 部署到 nodel,task3_2、task3_3 部署到 node3 ο
[0041]圖3是本發(fā)明基于數(shù)據(jù)集的動態(tài)調度過程圖。圖3 (a)中,對于常駐作業(yè)job2,其數(shù)據(jù)處理集被劃分為12個塊,分別為data_blockl,data_block2,......,data_blockl2,因此,指派給每個任務4個數(shù)據(jù)塊。
[0042]圖3的(b)job2中,作業(yè)管理器2發(fā)現(xiàn),task2_l的計算速度是task2_3的2倍多,于是就調度 task2_3 的 1/2 的任務集 data_block9、data_blocklO 到 task2_l 上。
[0043]圖4是本發(fā)明延遲調度的過程說明圖。假定jobl已經(jīng)完成,此時隊列提交了job40集群各個節(jié)點的資源能力分別是(2G,3),(1G,3.5),(1G,0.5)。圖4的(a) jobl,調度器解析job4,發(fā)現(xiàn)其由16個任務組成。調度器根據(jù)節(jié)點資源使用情況,將task4-l、
task4_3、......、task4_13 調度到 node2 上,將 task4_2、task4_4、......、task4_12 調度到
nodel上,將task4-14調度到node3上。此時,由于集群中每個節(jié)點無空閑CPU資源,即使有空閑的內存資源,此時也不再部署task4_15、task4_16到節(jié)點上,而是將這兩個任務插入到延遲隊列,等待先完成處理的節(jié)點來取。
[0044]圖4的(b) job2中,作業(yè)管理器4監(jiān)視job4其它14個任務的運行情況和集群資源利用情況。當job3運行結束后,nodel的資源能力是(2.4G,0.5),node3的資源能力是(2.9G,I)滿足task4-15、task4_16的運行要求。作業(yè)管理器4調度job4_15、job4_16到node3上運行。
[0045]圖5是本發(fā)明支持冗余互備過程說明圖。圖5的(a)中,假定jobl,job3,job4已經(jīng)相繼完成,同時集群增加節(jié)點node4,其資源能力是(2G,4)。此時,job5被提交到調度隊列中。調度器解析job5提交的參數(shù)發(fā)現(xiàn),該作業(yè)需要進行冗余互備,調度器為job5的每個任務指定一個備份,分別是task5_l’、task5_2’、task5_3’。這些任務在部署時,要滿足節(jié)點互斥部署,即相同的任務的主備不能運行在同一個節(jié)點上。調度器先后部署主任務和備份任務,此時4個節(jié)點的資源能力分別是(3G,3.5)、( 1G,1.5)、(3G,1.5)、(2G,4),調度器將job5的任務task5_l調度到node3上,將task5_2調度到nodel上,將task5_3調度到node2 上。
[0046]圖5的圖(b)中,當前4個節(jié)點的資源能力分別是(2G,3)、(0G,3)、(3G,1.5)、(1G,3.5),調度器依次部署三個備任務task5-l’,task5_2’,task5_3’ ;將job5的備任務task5_l’ 部署至Ij nodel, task5_2’ 部署到 node4,task5_3’ 部署到 nodel 上。
[0047]圖5 的圖(C)中,node4 離線,則 job5 的作業(yè)管理器從 task5_l’、task5_2、task5_3匯總數(shù)據(jù),生成計算結果。
[0048]通過上述實施例可知,本發(fā)明充分利用資源,通過對資源使用量的監(jiān)視,將作業(yè)部署在資源利用率低的節(jié)點上,全面提高資源利用率。而且處理能力強,作業(yè)上的任務被分布在多個節(jié)點上并行執(zhí)行,同時通過基于數(shù)據(jù)集的動態(tài)調度和延遲調度等方式,盡量讓作業(yè)調度在高性能節(jié)點上,以提高作業(yè)處理速度。
[0049]此外,本發(fā)明擴展性強,節(jié)點加入系統(tǒng)后,調度器可以發(fā)現(xiàn)自動發(fā)現(xiàn)該節(jié)點,并將作業(yè)部署到該節(jié)點上,不需要增加配置或者重啟管理程序;并且可靠性高,當任務出現(xiàn)故障或者斷網(wǎng),備份任務可以繼續(xù)進行工作,支持跨平臺,所有程序支持LINUX/AIX/HPUX/WINDOWS 平臺。
[0050]以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術人員應該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進,這些變化和改進都落入要求保護的本發(fā)明范圍內。本發(fā)明要求保護范圍由所附的權利要求書及其等效物界定。
【主權項】
1.一種適用于計算能力異構集群的分布式作業(yè)調度算法,其特征在于,包括以下步驟: 步驟I):節(jié)點資源的自動發(fā)現(xiàn);集群中的每個節(jié)點將資源信息以組播報文的方式發(fā)送到網(wǎng)絡中,調度器接收組播報文,自動發(fā)現(xiàn)集群系統(tǒng)中的節(jié)點,并匯總各個節(jié)點的資源信息; 步驟2):基于FIFO和資源利用最大化的作業(yè)調度機制;調度器在調度作業(yè)時,根據(jù)FIFO機制從調度隊列中選擇作業(yè),并指定部署到該作業(yè)內存需求的節(jié)點中CPU利用率最小的節(jié)點上; 步驟3):支持基于數(shù)據(jù)集的動態(tài)再調度機制;作業(yè)管理器動態(tài)調整各個任務的數(shù)據(jù)集,對于常駐作業(yè),作業(yè)管理器周期性地匯總計算結果;如果作業(yè)的某個任務的周期性計算速度最慢,則作業(yè)管理器將計算速度最慢的任務的數(shù)據(jù)集調度一部分給計算速度最快的任務,以提高作業(yè)的整體計算性能; 步驟4):支持延遲調度機制;對于非常駐作業(yè),調度器先將作業(yè)的一部分任務部署到所有節(jié)點上運行,剩下的任務被放入延遲隊列中等待調度;延遲隊列的任務由首先完成部分任務的處理節(jié)點獲取并運行,即,若某個節(jié)點有空閑的CPU資源,則從延遲隊列中選取一個任務部署到該節(jié)點運行,保證異構集群中計算能力強的節(jié)點能夠處理更多的任務,確保作業(yè)的整體完成時間更短; 步驟5):分布式作業(yè)調度支持冗余互備機制;調度器為每個作業(yè)的任務部署多個備份任務,當作業(yè)的某個任務出現(xiàn)故障或者離線時,備份任務依然能夠提供計算結果。2.根據(jù)權利I所要求的一種適用于計算能力異構集群的分布式作業(yè)調度算法,其特征在于,在上述步驟I)中,節(jié)點的資源信息主要由CPU和內存組成,各個節(jié)點通過心跳報文向調度器匯報節(jié)點的資源信息。3.根據(jù)權利I所要求的一種適用于計算能力異構集群的分布式作業(yè)調度算法,其特征在于,在步驟2)中,如果作業(yè)沒有指定部署節(jié)點,調度器選擇滿足作業(yè)內存需求的節(jié)點中CPU利用率最小的節(jié)點來部署作業(yè)。4.根據(jù)權利I所要求的一種適用于計算能力異構集群的分布式作業(yè)調度算法,其特征在于,在步驟3)中,作業(yè)分為常駐作業(yè)和非常駐作業(yè);常駐作業(yè)一直處于運行狀態(tài),生命周期長,主要提供實時計算和服務;非常駐作業(yè)生命周期短,主要處理臨時用戶請求和批量數(shù)據(jù)處理。5.根據(jù)權利I所要求的一種適用于計算能力異構集群的分布式作業(yè)調度算法,其特征在于,在步驟3)中,對于常駐作業(yè),作業(yè)管理器需要周期性地接收每個任務的實時計算結果,并進行匯總;作業(yè)每個周期的計算時間由最慢的任務決定;作業(yè)管理器統(tǒng)計每個任務每周期的計算時間,如果最慢的任務t_slow的計算時間是最快任務t_fast的計算時間的N倍,當N彡2時,作業(yè)管理器將t_slow的1/2數(shù)據(jù)集調度給t_fast處理。6.根據(jù)權利5所要求的一種適用于計算能力異構集群的分布式作業(yè)調度算法,其特征在于:作業(yè)管理器接收到任務的計算結果后,會給予應答;在應答時,作業(yè)管理器為任務指定下個周期需要計算的數(shù)據(jù)集,以重新分配數(shù)據(jù)集。7.根據(jù)權利I所要求的一種適用于計算能力異構集群的分布式作業(yè)調度算法,其特征在于,在步驟4)中,對于非常駐作業(yè),調度器首先將作業(yè)的部分任務部署到有空閑CPU核心的所有節(jié)點,當各個節(jié)點沒有空閑的CPU核心時,此時即使有空閑的內存也不再部署該作業(yè)的剩余任務,而是將它們插入到該作業(yè)的延遲隊列;延遲隊列中的任務將由作業(yè)管理器進行延遲調度。8.根據(jù)權利7所要求的一種適用于計算能力異構集群的分布式作業(yè)調度算法,其特征在于,作業(yè)管理器監(jiān)視各個處理節(jié)點的運行狀態(tài)和集群資源使用情況,當某個節(jié)點上先完成了部分任務,產生了空閑的(PU資源時,作業(yè)管理器從延遲隊列中選擇一個任務部署到該節(jié)點上,確保異構集群中處理能力更強的節(jié)點能夠處理更多的任務,即保證作業(yè)的整體完成時間更短。9.根據(jù)權利7所要求的一種適用于計算能力異構集群的分布式作業(yè)調度算法,其特征在于,當某個節(jié)點上屬于該作業(yè)的任務完成或者某個節(jié)點有空閑的CPU核心可以執(zhí)行任務時,各個作業(yè)管理器進行資源競爭,作業(yè)ID最小的作業(yè)管理器將獲勝,并從延遲隊列中將本作業(yè)的任務部署到該節(jié)點。10.根據(jù)權利I所要求的一種適用于計算能力異構集群的分布式作業(yè)調度算法,其特征在于,在步驟5)中,對于需要冗余互備的作業(yè),調度器首先解析作業(yè),獲取其所需的備份數(shù)N,N多2 ;然后為每個任務生成N個備份;接著,依次將各個任務和備份任務部署到集群上; 作業(yè)管理器監(jiān)視本作業(yè)下所有任務的運行狀態(tài),并接收所有任務的實時計算數(shù)據(jù);對于同一個任務的多份計算結果,作業(yè)管理者選擇計算速度最快的任務的處理數(shù)據(jù); 當作業(yè)的任務出現(xiàn)故障、停止、離線的異常狀態(tài)時,計算速度最快的備份任務將提供計算結果。
【專利摘要】本發(fā)明公開了一種適用于計算能力異構集群的分布式作業(yè)調度方法,包括五個步驟:第一,節(jié)點資源的自動化發(fā)現(xiàn);集群中的每個節(jié)點將資源信息以組播報文的方式發(fā)送到網(wǎng)絡中,調度器接收組播報文,自動發(fā)現(xiàn)集群節(jié)點;第二,基于FIFO和資源利用最大化的作業(yè)調度機制。第三,基于數(shù)據(jù)集的動態(tài)再調度機制。作業(yè)管理器動態(tài)調整各個任務的數(shù)據(jù)集;第四,延遲調度機制。將作業(yè)的部分任務部署到所有節(jié)點,剩下的任務提交到延遲隊列等待調度。第五,使用冗余互備機制。調度器為每個任務部署備份任務,保證在任務故障或者離線后,備份任務依然能夠提供計算結果。本發(fā)明提高了集群的分布式處理能力,提升了系統(tǒng)的資源利用率,確保了作業(yè)處理的可靠性。
【IPC分類】G06F9/48, G06F9/50
【公開號】CN105159769
【申請?zhí)枴緾N201510579836
【發(fā)明人】高原, 徐春雷, 顧文杰, 蘇大威, 任升, 江葉峰, 沙一川, 仇晨光, 方華建, 余璟, 吳海偉, 莊衛(wèi)金, 孟勇亮, 孫名揚, 孫世明
【申請人】國電南瑞科技股份有限公司, 國電南瑞南京控制系統(tǒng)有限公司
【公開日】2015年12月16日
【申請日】2015年9月11日