專利名稱:多核集群服務(wù)器上基于依賴度的并行任務(wù)分組調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明屬于高性能計(jì)算領(lǐng)域,具體涉及到集群服務(wù)器上操作系統(tǒng)中多個(gè)任務(wù)的并行調(diào)度方法,即將多個(gè)可以并行的任務(wù)分配到多個(gè)處理器執(zhí)行,從而使得所有任務(wù)的總體執(zhí)行時(shí)間或使用的處理器個(gè)數(shù)滿足要求。
背景技術(shù):
隨著高性能計(jì)算機(jī)的快速發(fā)展,大型多處理器集群系統(tǒng)的能耗越來越多,高效節(jié)能已經(jīng)成為高性能計(jì)算必須考慮的重要因素之一。集群系統(tǒng)往往由數(shù)百至數(shù)萬個(gè)計(jì)算節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)中包括多個(gè)同構(gòu)多核處理器。集群系統(tǒng)能夠同時(shí)運(yùn)行多個(gè)應(yīng)用程序,向多個(gè)用戶提供服務(wù)。如何通過調(diào)度的方法加快應(yīng)用程序運(yùn)行速度、減少系統(tǒng)總能耗,已經(jīng)成為高性能計(jì)算必須解決的問題之一。集群系統(tǒng)中并行任務(wù)節(jié)能調(diào)度問題是為系統(tǒng)中每一個(gè)待執(zhí)行的并行任務(wù)分配處理器等執(zhí)行資源,并指定占用這些資源的起止時(shí)間,在滿足任務(wù)間依賴關(guān)系的前提下,使得所有任務(wù)能夠較早完成,并且總能量消耗盡量少。與傳統(tǒng)的并行調(diào)度相比,并行任務(wù)節(jié)能調(diào)度的主要目標(biāo)不僅是減少所有任務(wù)總體完成時(shí)間,更要求盡量減少使用資源數(shù)目和資源的占用時(shí)間,提高資源利用率,達(dá)到整個(gè)集群系統(tǒng)中性能(任務(wù)總體完成時(shí)間)和能耗之間的平衡。并行任務(wù)在多處理器上的最優(yōu)調(diào)度問題已經(jīng)證明是NP難的,不存在多項(xiàng)式時(shí)間的調(diào)度算法。國內(nèi)外的學(xué)者一般采用啟發(fā)式算法生成調(diào)度方案,在減少所有任務(wù)完成時(shí)間的同時(shí)降低系統(tǒng)能耗。帶依賴關(guān)系的并行任務(wù)可以抽象成一個(gè)由多個(gè)定點(diǎn)構(gòu)成的有向無環(huán)圖(DAG圖),其中頂點(diǎn)表示任務(wù),頂點(diǎn)內(nèi)部的數(shù)字表示任務(wù)編號(hào),頂點(diǎn)周圍的數(shù)字表示任務(wù)執(zhí)行時(shí)間;有向邊表示任務(wù)之間的依賴關(guān)系(數(shù)據(jù)傳遞方向)。如果具有依賴關(guān)系的兩個(gè)任務(wù)不在一個(gè)處理器上執(zhí)行,前一個(gè)任務(wù)完成后需要向后一個(gè)任務(wù)傳送數(shù)據(jù),這需要一定的傳輸耗時(shí)。有向邊上的數(shù)值即表示數(shù)據(jù)傳輸耗時(shí)。如果具有依賴關(guān)系的兩個(gè)任務(wù)在一個(gè)處理器上執(zhí)行(無論是否在同一個(gè)內(nèi)核上),這種數(shù)據(jù)傳輸耗時(shí)相對(duì)于處理器之間的傳輸耗時(shí)可以忽略不計(jì),即認(rèn)為此時(shí)的傳輸耗時(shí)等于O。已有的任務(wù)復(fù)制調(diào)度策略TDS (Task Duplication Scheduling)按照DAG圖的拓?fù)浣Y(jié)構(gòu)生成多條任務(wù)執(zhí)行路徑,每條執(zhí)行路徑上的所有任務(wù)分為一組,分配到一個(gè)處理器上執(zhí)行,通過在多個(gè)處理器上復(fù)制執(zhí)行部分前驅(qū)任務(wù),避免前驅(qū)任務(wù)的數(shù)據(jù)傳輸耗時(shí),從而縮短所有任務(wù)的總體執(zhí)行時(shí)間。但是,任務(wù)復(fù)制執(zhí)行的方法在減少任務(wù)總體完成時(shí)間的同時(shí),不可避免的帶來了能耗增加問題。為此,有人在TDS的基礎(chǔ)上,提出了兩種非搶占式離線節(jié)能調(diào)度算法一能量敏感復(fù)制調(diào)度EAD(Energy-Aware Duplication)調(diào)度和性能能量均衡復(fù)制調(diào)度PEBD(Performance-Energy Balanced Duplication)調(diào)度,通過設(shè)置任務(wù)能量閾值和能量/時(shí)間比閾值,減少不必要任務(wù)的復(fù)制次數(shù),從而降低系統(tǒng)的總體能量開銷。但是TDS、EAD和PEBD都存在處理器負(fù)載不平衡,平均利用率較低的問題。而且已有方法只是針對(duì)單核處理器上的考慮任務(wù)復(fù) 制的節(jié)能調(diào)度算法。目前,還沒有同構(gòu)多核處理器上考慮任務(wù)復(fù)制執(zhí)行的節(jié)能調(diào)度算法。
發(fā)明內(nèi)容
為解決現(xiàn)有調(diào)度技術(shù)無法實(shí)現(xiàn)同構(gòu)多核處理器上考慮任務(wù)復(fù)制情況的并行節(jié)能調(diào)度問題,本發(fā)明提供了一種同構(gòu)多核集群服務(wù)器中基于任務(wù)依賴度的并行任務(wù)分組調(diào)度方法。本發(fā)明采用的技術(shù)方案如下:多核集群服務(wù)器上基于依賴度的并行任務(wù)分組調(diào)度方法,包括以下步驟:步驟(I)根據(jù)任務(wù)執(zhí)行參數(shù)和依賴關(guān)系得到初始執(zhí)行路徑;然后,計(jì)算每條初始執(zhí)行路徑的負(fù)載,按照負(fù)載從大到小的順序?qū)Τ跏紙?zhí)行路徑進(jìn)行排序;步驟(2)根據(jù)給定的處理器個(gè)數(shù),按照依賴關(guān)系安排初始執(zhí)行路徑運(yùn)行位置,即按照初始執(zhí)行路徑之間的依賴關(guān)系,將兩條或多條依賴度大的初始執(zhí)行路徑安排在同一個(gè)處理器上,組成一條優(yōu)化后的執(zhí)行路徑;步驟(3)將處理器使用個(gè)數(shù)減I,并按照步驟(2)安排所有N條初始執(zhí)行路徑的運(yùn)行位置,尋找其它可選調(diào)度方案;步驟(4)不斷執(zhí)行步驟(3),直到調(diào)度方案的完成時(shí)間超過允許的總體完成時(shí)間為止。在所有的可選調(diào)度方案列表中,選擇完成時(shí)間小于或等于總體完成時(shí)間約束的、節(jié)約能耗最多的一組調(diào)度方案作為最終調(diào)度。所述的步驟(I)的具體步驟如下:(1-1)計(jì)算各個(gè)任務(wù)的執(zhí)行參數(shù),包括最優(yōu)前驅(qū)任務(wù)、任務(wù)在依賴關(guān)系圖中的高度;(1-2)利用計(jì)算出來的執(zhí)行參數(shù),根據(jù)已有的任務(wù)復(fù)制調(diào)度算法,生成初始執(zhí)行路徑,并假設(shè)初始執(zhí)行路徑有N條(N <總內(nèi)核數(shù)),所述的總內(nèi)核數(shù)是指給定的處理器的內(nèi)核數(shù)之和;(1-3)計(jì)算每條初始執(zhí)行路徑的負(fù)載,即初始執(zhí)行路徑上所有任務(wù)的執(zhí)行時(shí)間總和;依據(jù)負(fù)載從大到小的順序?qū)Τ跏紙?zhí)行路徑進(jìn)行排序,并假設(shè)所有初始執(zhí)行路徑中負(fù)載最大值為最大負(fù)載為Max_Load ;(1-4)根據(jù)所用系統(tǒng)的單個(gè)處理器內(nèi)核個(gè)數(shù),假設(shè)為K,設(shè)定最多可用處理器個(gè)數(shù)Max_CPU=生成初始執(zhí)行路徑條數(shù)/單個(gè)處理器內(nèi)核個(gè)數(shù)=N/K取上整數(shù);設(shè)置占用處理器個(gè)數(shù)初始值M=Max_CPU。所述的初始執(zhí)行路徑任務(wù)未分配到處理器上時(shí),任務(wù)的初始執(zhí)行路徑由TDS、EAD或PEBD算法生成。所述的步驟(2)的具體步驟如下:首先將N條初始執(zhí)行路徑的前M條路徑分配到M個(gè)處理器的第一個(gè)核上,然后從第M+1條路徑開始計(jì)算該路徑對(duì)M個(gè)處理器的依賴度,選擇依賴度最大的處理器上分配給該路徑;該路徑將運(yùn) 行在依賴度最大的處理器中的空閑時(shí)間最多的內(nèi)核上;按照相同的方法,循環(huán)迭代安排第M+2至第N條路徑的運(yùn)行位置(即運(yùn)行該路徑的處理器及其內(nèi)核);當(dāng)所有N條初始執(zhí)行路徑安排完運(yùn)行位置之后,將此時(shí)處理器個(gè)數(shù)、最后一個(gè)任務(wù)完成時(shí)間和總能耗作為一種可選調(diào)度方案,添加到{處理器個(gè)數(shù)、完成時(shí)間、總能耗}列表中。
所述的步驟(3)的具體步驟如下:不斷重復(fù)執(zhí)行步驟(3),直到調(diào)度方案的完成時(shí)間超過允許的總體完成時(shí)間為止;在所有的可選調(diào)度方案列表中,在允許的總體完成時(shí)間范圍內(nèi),選擇節(jié)約能耗最多的一組調(diào)度方案作為最終調(diào)度。本發(fā)明采用的方法與現(xiàn)有技術(shù)相比有如下優(yōu)點(diǎn):本發(fā)明結(jié)合分組調(diào)度和復(fù)制調(diào)度的基本思想,本發(fā)明提出了一種考慮同構(gòu)多核處理器結(jié)構(gòu)的、基于任務(wù)集依賴度的并行任務(wù)分組調(diào)度方法,簡稱DG (Dependence Grouping)方法。通過計(jì)算任務(wù)執(zhí)行路徑之間的任務(wù)依賴度,根據(jù)任務(wù)路徑之間依賴度的大小選擇合適的任務(wù)執(zhí)行路徑進(jìn)行合并,將合并之后的路徑作為一個(gè)路徑分組分配給一個(gè)處理器內(nèi)核執(zhí)行。DG方法可以充分利用內(nèi)核的空閑時(shí)間,減少占用的處理器個(gè)數(shù),從而降低系統(tǒng)總能量開銷。DG方法與TDS、EAD和PEBD調(diào)度結(jié)合形成了三種優(yōu)化的調(diào)度算法TDS_DG、EAD_DG和PEBD_DG。實(shí)驗(yàn)結(jié)果表明,優(yōu)化后的三種算法與優(yōu)化之前的相應(yīng)算法相比,在任務(wù)總體執(zhí)行時(shí)間不變或略微增加的情況下,而總體能耗得到的大幅降低,另外還有如下優(yōu)點(diǎn):(I)相對(duì)于現(xiàn)有的同構(gòu)多處理器調(diào)度算法,本發(fā)明能有效地減少處理器的使用個(gè)數(shù),提高資源的利用效率,減少不必要的任務(wù)復(fù)制、處理器之間通信開銷以及處理器的空閑時(shí)間,從而降低整個(gè)集群系統(tǒng)的能量消耗;(2)本發(fā)明使用啟發(fā)式算法形成一種靜態(tài)調(diào)度方法,實(shí)現(xiàn)過程簡單高效,對(duì)硬件要求低、計(jì)算開銷小;(3)本發(fā)明還可以根據(jù)任務(wù)集合總體完成時(shí)間約束或處理器的最大使用個(gè)數(shù)約束,生成符合約束要求的最節(jié)能的調(diào)度方案。
圖1是本發(fā)明實(shí)施例中應(yīng)用任務(wù)依賴關(guān)系圖。圖2是任務(wù)復(fù)制調(diào)度策略(TDS)生成的調(diào)度結(jié)果;圖3是本發(fā)明的調(diào)度結(jié)果;圖4是本發(fā)明所用到的任務(wù)復(fù)制調(diào)度策略的流程圖;圖5是單個(gè)任務(wù)對(duì)任務(wù)執(zhí)行路徑依賴度(Dependence Factor,簡稱DF)的計(jì)算方法流程圖。
具體實(shí)施例方式下面首先給出本發(fā)明的相關(guān)定義,然后列出相關(guān)算法,最后給出一個(gè)具體實(shí)例,并結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步地說明。本發(fā)明提出了一種基于任務(wù)依賴度的任務(wù)分配算法,通過計(jì)算執(zhí)行路徑之間的依賴度,在不增加執(zhí)行路徑最大負(fù)載和符合執(zhí)行任務(wù)之間的前驅(qū)后繼約束關(guān)系的前提下,將執(zhí)行路徑之間依賴度大的路徑進(jìn)行合并,相對(duì)于原來算法達(dá)到了使處理器負(fù)載更加平衡、減少不必要的任務(wù)復(fù)制、減少處理器之間通信開銷、減少處理器的空閑時(shí)間能耗,從而達(dá)到整體能耗減少。根據(jù)任務(wù)執(zhí)行參數(shù)和依賴關(guān)系得到初始的任務(wù)執(zhí)行路徑,然后根據(jù)任務(wù)執(zhí)行路徑之間依賴度大小將執(zhí)行路徑分組合并后,分配到處理器上執(zhí)行,尋找滿足總體完成時(shí)間約束的所有分配方案,從中選擇一個(gè)最節(jié)能的分配方案。具體包括下列部分:(I)生成初始執(zhí)行路徑首先,計(jì)算各個(gè)任務(wù)的執(zhí)行參數(shù),例如:最優(yōu)前驅(qū)任務(wù)、任務(wù)在依賴關(guān)系圖中的高度。利用計(jì)算出來的執(zhí)行參數(shù),根據(jù)已有的任務(wù)復(fù)制調(diào)度算法(TDS、EAD或PEBD)生成初始執(zhí)行路徑(假設(shè)初始執(zhí)行路徑有N條)。生成執(zhí)行路徑之后,計(jì)算每條路徑的負(fù)載(即路徑上所有任務(wù)的執(zhí)行時(shí)間總和),依據(jù)負(fù)載從大到小的順序?qū)?zhí)行路徑進(jìn)行排序。假設(shè)所有執(zhí)行路徑中負(fù)載最大值為最大負(fù)載(Max_Load)。根據(jù)所用系統(tǒng)的單個(gè)處理器內(nèi)核個(gè)數(shù)(假設(shè)為K),設(shè)定最多可用處理器個(gè)數(shù)(Max_CPU)=生成初始執(zhí)行路徑條數(shù)/單個(gè)處理器內(nèi)核個(gè)數(shù)=N/K取上整數(shù)。設(shè)置占用處理器個(gè)數(shù)初始值M=Max_CPU。(2)給定處理器個(gè)數(shù)下,安排任務(wù)執(zhí)行路徑運(yùn)行位置首先將前M條路徑分配到M個(gè)處理器的第一個(gè)核上,然后從第M+1條路徑開始計(jì)算該路徑對(duì)M個(gè)處理器的依賴度,選擇依賴度最大的處理器上分配給該路徑。該路徑將運(yùn)行在依賴度最大的處理器中的空閑時(shí)間最多的內(nèi)核上。按照相同的方法,循環(huán)迭代安排第M+2至第N條路徑的運(yùn)行位置(即運(yùn)行該路徑的處理器及其內(nèi)核)。當(dāng)所有N條路徑安排完運(yùn)行位置之后,將此 時(shí)處理器個(gè)數(shù)、最后一個(gè)任務(wù)完成時(shí)間和總能耗作為一種可選調(diào)度方案,添加到{處理器個(gè)數(shù)、完成時(shí)間、總能耗}列表中。(3)減少處理器個(gè)數(shù)尋找其它可選調(diào)度方案將處理器使用個(gè)數(shù)M減1,并按照第(2)步安排所有N條執(zhí)行路徑的運(yùn)行位置,尋找其它可選調(diào)度方案。(4)選擇滿足截止期需求的最節(jié)能的調(diào)度方案不斷執(zhí)行步驟(3),直到調(diào)度方案的完成時(shí)間超過允許的總體完成時(shí)間為止。在所有的可選調(diào)度方案列表中,在允許的總體完成時(shí)間范圍內(nèi),選擇節(jié)約能耗最多的一組調(diào)度方案作為最終調(diào)度。1.相關(guān)定義I)直接任務(wù)依賴在DAG圖中,相鄰兩個(gè)任務(wù)節(jié)點(diǎn)之間如果存在直接前驅(qū)、后繼關(guān)系,則這兩個(gè)任務(wù)之間存在直接任務(wù)依賴,例如圖1中任務(wù)I和任務(wù)2,如果兩個(gè)任務(wù)之間不存在直接的前驅(qū)、后繼關(guān)系,則兩個(gè)任務(wù)之間不存在直接任務(wù)依賴,例如圖中任務(wù)2和任務(wù)6,任務(wù)2和任務(wù)3。2)執(zhí)行路徑具有依賴關(guān)系的多個(gè)任務(wù)可以組成一條執(zhí)行路徑,分配到一個(gè)處理器上執(zhí)行,從而避免依賴任務(wù)之間的數(shù)據(jù)傳輸耗時(shí)。任意一條執(zhí)行路徑中,任務(wù)執(zhí)行順序要求符合任務(wù)間的前驅(qū)后繼關(guān)系。例如,在如圖1中,任務(wù)I 一定要在任務(wù)2、3、4、5之前執(zhí)行。TDS、EAD或PEBD算法可以生成初始執(zhí)行路徑。圖1所示例子中的任務(wù)集經(jīng)過TDS算法生成5條任務(wù)執(zhí)行路徑,分別為:L1=<1, 4,8,9>,L2=〈l,2,7>,L3=〈l,2,6>,L4=〈l,5>,L5=〈l,3>。 3)任務(wù)對(duì)路徑的依賴度任務(wù)對(duì)某條路徑的依賴度分兩種情況定義:
(a)如果任務(wù)ν在任務(wù)執(zhí)行路徑L上,則ν對(duì)L的依賴度為V的執(zhí)行時(shí)間;(b)如果任務(wù)ν不在L上,而存在ν的直接前驅(qū)或后繼在L上,則此任務(wù)對(duì)L的依賴度等于ν在L上的直接前驅(qū)對(duì)ν的數(shù)據(jù)傳輸耗時(shí)加上ν對(duì)L上的直接后繼任務(wù)的數(shù)據(jù)傳輸耗時(shí)之和。例如,在圖1中,節(jié)點(diǎn)3對(duì)路徑Ll=〈l,4,8,9>的依賴度等于5 (即2+3);如果此任務(wù)ν不在L上,且其直接前驅(qū)和后繼都不在L上,則此任務(wù)對(duì)L的依賴度為O。任務(wù)對(duì)路徑的依賴度代表如果任務(wù)ν和路徑L在一個(gè)處理器上執(zhí)行的話,所節(jié)約的時(shí)間。4)執(zhí)行路徑對(duì)執(zhí)行路徑的依賴度假設(shè)存在兩條任務(wù)路徑A和B,路徑A對(duì)路徑B的依賴度為路徑A上的所有任務(wù)對(duì)路徑B的依賴度之和。例如,在圖1中,路徑1^5=〈1,3>對(duì)路徑1^1=〈1,4,8,9>的依賴度等于7(即2+5)。路徑之間的依賴度具有不對(duì)稱性,即路徑A對(duì)路徑B的依賴度不一定等于路徑B對(duì)路徑A的依賴度。5 )執(zhí)行路徑對(duì)處理器依賴度假設(shè)存在路徑L和一個(gè)處理器P。如果處理器任何一個(gè)核上都沒有分配任務(wù)路徑,則L對(duì)P的依賴度設(shè)為無窮大,L將被分配到P的第一個(gè)核上;若處理器上已經(jīng)分配過任務(wù),則L對(duì)P的依賴度為L對(duì)P上所有執(zhí)行路徑依賴度之和。2.基于依賴度的任務(wù)分組分配策略(DG)Stepl.利用TDS (例如圖3流程圖)、EAD或者PEBD算法,得到N條任務(wù)初始執(zhí)行路徑; Step2.計(jì)算每條執(zhí)行路徑的負(fù)載,即該條路徑上所有任務(wù)的執(zhí)行時(shí)間之和;根據(jù)路徑負(fù)載的從大到小的順序,對(duì)任務(wù)執(zhí)行路徑進(jìn)行排序;Step3.假設(shè)系統(tǒng)中有Μ’個(gè)多核處理器,每個(gè)處理器包含K個(gè)相同的內(nèi)核,而且同一處理器的各個(gè)核心可以通過共享內(nèi)存相互通信,處理器內(nèi)部通信時(shí)間和能耗相對(duì)于處理器之間的通信近似忽略不計(jì);Step4.如果N〈=K*M’,令占用的總處理器個(gè)數(shù)Μ=ρν/ΛΤ| (上整數(shù));否則Μ=Μ’ ;Step5.將前M條路徑分配到M個(gè)處理器的第一個(gè)核上;從第M+1條路徑開始計(jì)算該路徑對(duì)M個(gè)處理器的依賴度,選擇依賴度最大的處理器上分配給該路徑。該路徑將運(yùn)行在依賴度最大的處理器中的空閑時(shí)間最多的內(nèi)核上。然后,根據(jù)任務(wù)level屬性值從大到小調(diào)整任務(wù)的執(zhí)行順序,并將存在的冗余任務(wù)刪除。按照相同的方法,循環(huán)迭代安排第M+2至第N條路徑的運(yùn)行位置(即運(yùn)行該路徑的處理器及其內(nèi)核)。當(dāng)所有N條路徑安排完運(yùn)行位置之后,將此時(shí)處理器個(gè)數(shù)、最后一個(gè)任務(wù)完成時(shí)間和總能耗作為一種可選調(diào)度方案,添加到{處理器個(gè)數(shù)、完成時(shí)間、總能耗}列表中;Step6.將處理器使用個(gè)數(shù)M減1,并按照St印5安排所有N條執(zhí)行路徑的運(yùn)行位置,尋找其它可選調(diào)度方案。Step7.不斷執(zhí)行Step6,直到調(diào)度方案的完成時(shí)間超過允許的總體完成時(shí)間為止。在所有的可選調(diào)度方案列表中,選擇完成時(shí)間小于或等于總體完成時(shí)間約束的、節(jié)約能耗最多的一組調(diào)度方案作為最終調(diào)度。3.一個(gè)由9個(gè)結(jié)點(diǎn)組成的任務(wù)集合調(diào)度實(shí)例
( I)生成初始執(zhí)行路徑首先計(jì)算使用任務(wù)復(fù)制算法生成初始執(zhí)行路徑的參數(shù),以圖1所列DAG圖為例,首先根據(jù)TDS調(diào)度算法計(jì)算復(fù)制參數(shù),見表1:
權(quán)利要求
1.多核集群服務(wù)器上基于依賴度的并行任務(wù)分組調(diào)度方法,其特征在于:包括以下步驟: 步驟(I)根據(jù)任務(wù)執(zhí)行參數(shù)和依賴關(guān)系得到初始執(zhí)行路徑;然后,計(jì)算每條初始執(zhí)行路徑的負(fù)載,按照負(fù)載從大到小的順序?qū)Τ跏紙?zhí)行路徑進(jìn)行排序; 步驟(2)根據(jù)給定的處理器個(gè)數(shù),按照依賴關(guān)系安排初始執(zhí)行路徑運(yùn)行位置,即按照初始執(zhí)行路徑之間的依賴關(guān)系,將兩條或多條依賴度大的初始執(zhí)行路徑安排在同一個(gè)處理器上,組成一條優(yōu)化后的執(zhí)行路徑; 步驟(3)將處理器使用個(gè)數(shù)減1,并按照步驟(2)安排所有N條初始執(zhí)行路徑的運(yùn)行位置,尋找其它可選調(diào)度方案; 步驟(4)不斷執(zhí)行步驟(3),直到調(diào)度方案的完成時(shí)間超過允許的總體完成時(shí)間為止;在所有的可選調(diào)度方案列表中,選擇完成時(shí)間小于或等于總體完成時(shí)間約束的、節(jié)約能耗最多的一組調(diào)度方案作為最終調(diào)度。
2.如權(quán)利要求1所述的基于依賴度的并行任務(wù)分組調(diào)度方法,其特征在于:所述的步驟(I)的具體步驟如下: (1-1)計(jì)算各個(gè)任務(wù)的執(zhí)行參數(shù),包括最優(yōu)前驅(qū)任務(wù)、任務(wù)在依賴關(guān)系圖中的高度; (1-2)利用計(jì)算出來的執(zhí)行參數(shù),根據(jù)已有的任務(wù)復(fù)制調(diào)度算法,生成初始執(zhí)行路徑,并假設(shè)初始執(zhí)行路徑有N條,其中N <總內(nèi)核數(shù); (1-3)計(jì)算每條初始執(zhí)行路徑的負(fù)載,即初始執(zhí)行路徑上所有任務(wù)的執(zhí)行時(shí)間總和;依據(jù)負(fù)載從大到小的順序?qū)Τ跏紙?zhí)行路徑進(jìn)行排序,并假設(shè)所有初始執(zhí)行路徑中負(fù)載最大值為最大負(fù)載為Max_Load ; (1-4)根據(jù)所用系統(tǒng)的單個(gè)處理器內(nèi)核個(gè)數(shù),假設(shè)為K,設(shè)定最多可用處理器個(gè)數(shù)Max_CPU=生成初始執(zhí)行路徑條數(shù)/單個(gè)處理器內(nèi)核個(gè)數(shù)=N/K取上整數(shù);設(shè)置占用處理器個(gè)數(shù)初始值 M=Max_CPU。
3.如權(quán)利要求2所述的并行任務(wù)分組調(diào)度方法,其特征在于:所述的初始執(zhí)行路徑任務(wù)未分配到處理器上時(shí),任務(wù)的初始執(zhí)行路徑由TDS、EAD或PEBD算法生成。
4.如權(quán)利要求2所述的并行任務(wù)分組調(diào)度方法,其特征在于:所述的步驟(2)的具體步驟如下: 首先將N條初始執(zhí)行路徑的前M條路徑分配到M個(gè)處理器的第一個(gè)核上,然后從第M+1條路徑開始計(jì)算該路徑對(duì)M個(gè)處理器的依賴度,選擇依賴度最大的處理器上分配給該路徑;該路徑將運(yùn)行在依賴度最大的處理器中的空閑時(shí)間最多的內(nèi)核上;按照相同的方法,循環(huán)迭代安排第M+2至第N條路徑的運(yùn)行位置,即運(yùn)行該路徑的處理器及其內(nèi)核;當(dāng)所有N條初始執(zhí)行路徑安排完運(yùn)行位置之后,將此時(shí)處理器個(gè)數(shù)、最后一個(gè)任務(wù)完成時(shí)間和總能耗作為一種可選調(diào)度方案,添加到{處理器個(gè)數(shù)、完成時(shí)間、總能耗}列表中。
5.如權(quán)利要求1所述的并行任務(wù)分組調(diào)度方法,其特征在于:所述的步驟(3)的具體步驟如下: 不斷重復(fù)執(zhí)行步驟(3),直到調(diào)度方案的完成時(shí)間超過允許的總體完成時(shí)間為止;在所有的可選調(diào)度方案列表中,在允許的總體完成時(shí)間范圍內(nèi),選擇節(jié)約能耗最多的一組調(diào)度方案作為最終調(diào)度。
全文摘要
本發(fā)明具體公開了一種同構(gòu)多核集群服務(wù)器上基于依賴度的并行任務(wù)分組調(diào)度方法,通過計(jì)算執(zhí)行路徑之間的依賴度,在不增加執(zhí)行路徑最大負(fù)載前提下,將執(zhí)行路徑之間依賴度大的路徑進(jìn)行合并,相對(duì)于原來算法,本方法能夠減少不必要的任務(wù)復(fù)制開銷、處理器之間通信開銷和處理器的空閑時(shí)間能耗,使處理器負(fù)載更加平衡,從而達(dá)到整體能耗減少。本發(fā)明最大的特點(diǎn)就是有效地減少處理器的使用個(gè)數(shù),提高了資源的利用效率,使處理器負(fù)載更加平衡,從而達(dá)到整體能耗減少。
文檔編號(hào)G06F9/50GK103235742SQ20131011786
公開日2013年8月7日 申請(qǐng)日期2013年4月7日 優(yōu)先權(quán)日2013年4月7日
發(fā)明者李新, 賈智平, 趙衍恒, 謝帥 申請(qǐng)人:山東大學(xué)