專利名稱:一種異構(gòu)多核處理器高效任務(wù)調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種提高處理器性能的方法。具體地說是一種基于異構(gòu)多核的高效任務(wù)調(diào)度方法。
背景技術(shù):
伴隨著人們對(duì)高性能微處理器的無止境追求,在過去的幾十年,依靠傳統(tǒng)提升處理器時(shí)鐘頻率的方法,單核處理器的頻率得到了大幅度提升,目前已經(jīng)高達(dá)4GHz。同時(shí), 由于處理器主頻的不斷提升和芯片集成度的增加,單核處理器的功耗和散熱問題越來越嚴(yán)重,傳統(tǒng)的通過超標(biāo)量和超流水來開發(fā)處理器并行性的技術(shù)使得處理器設(shè)計(jì)成本越來越高,不堪重負(fù),單核處理器性能提升遭遇瓶頸。但是,現(xiàn)代應(yīng)用需求的不斷變化迫切要求處理器性能的不斷提升。單核處理器性能提升接近極限和應(yīng)用需求對(duì)處理器性能繼續(xù)提升的要求成為處理器發(fā)展的主要矛盾,這一矛盾的解決迫切要求構(gòu)建一種高性能處理器體系結(jié)構(gòu)。順應(yīng)現(xiàn)代應(yīng)用對(duì)高性能處理器的需求,多核處理器(Chip Multi-Proces sor, CMP)應(yīng)運(yùn)而生,并將成為處理器發(fā)展的主流。多核處理器為大幅度提升系統(tǒng)性能提供了良好的硬件平臺(tái),但是硬件只有與相應(yīng)的軟件相結(jié)合才能充分發(fā)揮出多核處理器的高性能優(yōu)勢(shì)。在多核處理器的軟件開發(fā)中,任務(wù)調(diào)度策略的好壞將對(duì)多核處理器的性能產(chǎn)生直接影響,如果調(diào)度不當(dāng)甚至?xí)ㄉ范嗪颂幚砥鞲卟⑿行缘膬?yōu)勢(shì),降低多核處理器的性能。在異構(gòu)多核處理器中,相同任務(wù)在不同處理器內(nèi)核上的運(yùn)行時(shí)間不同,任務(wù)調(diào)度的目的就是在滿足任務(wù)優(yōu)先級(jí)約束的前提下,將全部任務(wù)都盡量分配到運(yùn)行效率最高的處理器內(nèi)核,最終使得總?cè)蝿?wù)的完成時(shí)間最短。但是,同時(shí)滿足總?cè)蝿?wù)完成時(shí)間最少和任務(wù)優(yōu)先級(jí)約束的要求,導(dǎo)致不可能將全部任務(wù)都分配到執(zhí)行效率最高的處理器內(nèi)核。因此,需要合理的任務(wù)調(diào)度策略,在保證任務(wù)優(yōu)先級(jí)約束的基礎(chǔ)上,減少總?cè)蝿?wù)的執(zhí)行時(shí)間,提高多核處理器的性能。近年來,針對(duì)異構(gòu)多核處理器任務(wù)調(diào)度問題,國(guó)內(nèi)外許多專家和科研機(jī)構(gòu)都進(jìn)行了積極研究,旨在通過減少通信開銷、改變?nèi)蝿?wù)執(zhí)行順序,以減小整個(gè)任務(wù)的調(diào)度長(zhǎng)度。但是,目前異構(gòu)多核處理器的任務(wù)調(diào)度效率仍不夠理想,存在通信開銷過大、關(guān)鍵任務(wù)優(yōu)先級(jí)不高、冗余任務(wù)過多等問題,嚴(yán)重影響了多核處理器的任務(wù)調(diào)度性能。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種高效率、低功耗的異構(gòu)多核處理器高效任務(wù)調(diào)度方法。本發(fā)明的目的是這樣實(shí)現(xiàn)的(1)任務(wù)圖的聚簇優(yōu)化采用線性任務(wù)聚簇方法,將任務(wù)圖中某些特殊的、通信開銷較大的、容易聚簇的任務(wù)聚簇到其前驅(qū)節(jié)點(diǎn);( 優(yōu)先級(jí)計(jì)算從整個(gè)任務(wù)圖的拓?fù)浣Y(jié)構(gòu)出發(fā),選擇能夠綜合反映任務(wù)在整個(gè)任務(wù)圖中地位的參數(shù)作為優(yōu)先級(jí)權(quán)值;(3)任務(wù)分配首先選取自由關(guān)鍵路徑節(jié)點(diǎn)進(jìn)行分配,如果存在多個(gè)自由關(guān)鍵路徑節(jié)點(diǎn),按照節(jié)點(diǎn)優(yōu)先級(jí)權(quán)值從高到低的順序進(jìn)行分配,所有非關(guān)鍵路徑自由節(jié)點(diǎn)按照優(yōu)先級(jí)權(quán)值從高到低的順序進(jìn)行分配;(4)調(diào)度結(jié)果優(yōu)化通過對(duì)調(diào)度結(jié)果中進(jìn)行復(fù)制的任務(wù)進(jìn)行冗余性判斷,刪除調(diào)度結(jié)果中的冗余任務(wù);通過對(duì)冗余任務(wù)刪除后的調(diào)度結(jié)果進(jìn)行調(diào)整,重新計(jì)算每個(gè)任務(wù)的最早完成時(shí)間。本發(fā)明的異構(gòu)多核處理器高效任務(wù)調(diào)度方法克服了已有技術(shù)中多核處理器的任務(wù)調(diào)度的缺點(diǎn),將整個(gè)任務(wù)調(diào)度過程分為任務(wù)聚簇、優(yōu)先級(jí)計(jì)算、任務(wù)調(diào)度和調(diào)度結(jié)果優(yōu)化四個(gè)階段,降低了某些特殊任務(wù)的通信開銷,提高了關(guān)鍵任務(wù)的優(yōu)先級(jí),優(yōu)化了調(diào)度結(jié)果。 最終提高了任務(wù)調(diào)度的效率,提升了處理器系統(tǒng)的性能,增強(qiáng)了處理器系統(tǒng)的可擴(kuò)展性,在高性能多核處理器建設(shè)中具有良好應(yīng)用前景。在異構(gòu)多核處理器任務(wù)調(diào)度中,某些任務(wù)的通信開銷遠(yuǎn)遠(yuǎn)大于任務(wù)的執(zhí)行開銷, 任務(wù)通信時(shí)間占整個(gè)任務(wù)總執(zhí)行時(shí)間的絕大部分,該類任務(wù)的執(zhí)行嚴(yán)重影響了任務(wù)的執(zhí)行效率,延遲了整個(gè)任務(wù)的完成時(shí)間。本發(fā)明的異構(gòu)多核處理器高效任務(wù)調(diào)度方法在任務(wù)圖的聚簇優(yōu)化階段采用線性任務(wù)聚簇方法,將任務(wù)圖中某些特殊的、通信開銷較大的、容易聚簇的任務(wù)聚簇到其前驅(qū)節(jié)點(diǎn),以消除該類任務(wù)的通信開銷。本發(fā)明通過聚簇優(yōu)化過程消除了某些特殊任務(wù)的通信開銷,有利于后續(xù)任務(wù)調(diào)度工作的順利進(jìn)行,有利于減少整個(gè)任務(wù)的完成時(shí)間,提高任務(wù)調(diào)度的效率?,F(xiàn)有異構(gòu)多核處理器任務(wù)調(diào)度中,某些關(guān)鍵節(jié)點(diǎn)的優(yōu)先級(jí)不高,延遲了整個(gè)任務(wù)的完成時(shí)間。本發(fā)明的異構(gòu)多核處理器高效任務(wù)調(diào)度方法在優(yōu)先級(jí)計(jì)算階段從整個(gè)任務(wù)圖的拓?fù)浣Y(jié)構(gòu)出發(fā),選擇能夠綜合反映任務(wù)在整個(gè)任務(wù)圖中地位的參數(shù)作為優(yōu)先級(jí)權(quán)值。任務(wù)分配階段,首先選取自由關(guān)鍵路徑節(jié)點(diǎn)進(jìn)行分配,如果存在多個(gè)自由關(guān)鍵路徑節(jié)點(diǎn),按照節(jié)點(diǎn)優(yōu)先級(jí)權(quán)值從高到低的順序進(jìn)行分配,所有非關(guān)鍵路徑自由節(jié)點(diǎn)按照優(yōu)先級(jí)權(quán)值從高到低的順序進(jìn)行分配。該方法保證了某些關(guān)鍵節(jié)點(diǎn)的優(yōu)先調(diào)度,有利于進(jìn)一步減小總?cè)蝿?wù)的調(diào)度長(zhǎng)度,對(duì)提高任務(wù)調(diào)度的效率起著至關(guān)重要的作用。冗余任務(wù)是指由于任務(wù)復(fù)制而產(chǎn)生的多余任務(wù),該類任務(wù)的刪除不會(huì)延遲子任務(wù)的開始時(shí)間,對(duì)整個(gè)任務(wù)的調(diào)度長(zhǎng)度不會(huì)產(chǎn)生影響。針對(duì)現(xiàn)有任務(wù)調(diào)度中存在的冗余任務(wù)過多、嚴(yán)重浪費(fèi)處理器資源問題,本發(fā)明的異構(gòu)多核處理器高效任務(wù)調(diào)度方法在最后的調(diào)度結(jié)果優(yōu)化階段對(duì)冗余任務(wù)和空閑時(shí)間段進(jìn)行了優(yōu)化處理。通過對(duì)調(diào)度結(jié)果中進(jìn)行復(fù)制的任務(wù)進(jìn)行冗余性判斷,刪除調(diào)度結(jié)果中的冗余任務(wù);通過對(duì)冗余任務(wù)刪除后的調(diào)度結(jié)果進(jìn)行調(diào)整,合理利用處理器空閑時(shí)間段資源,重新計(jì)算每個(gè)任務(wù)的最早完成時(shí)間,減小整個(gè)任務(wù)的最終調(diào)度長(zhǎng)度,提高多核處理器資源利用率,達(dá)到提升多核處理器任務(wù)調(diào)度性能的目的。本發(fā)明在異構(gòu)多核處理器任務(wù)調(diào)度問題上有獨(dú)到的優(yōu)勢(shì),測(cè)試結(jié)果表明,采用該任務(wù)調(diào)度方法的異構(gòu)多核處理器性能更高、可擴(kuò)展性好、功耗低,可有效保證異構(gòu)多核處理器任務(wù)調(diào)度的高效性。本發(fā)明的優(yōu)點(diǎn)在于克服了任務(wù)調(diào)度中通信開銷過大、關(guān)鍵任務(wù)優(yōu)先級(jí)不足和冗余任務(wù)過多的問題,縮短了整個(gè)任務(wù)調(diào)度的長(zhǎng)度。多次試驗(yàn)證明與以往方法相比本方法的任務(wù)調(diào)度效率提高了約12%,隨著任務(wù)數(shù)量和處理器內(nèi)核數(shù)目的增多,新方法的優(yōu)越性更加明顯,節(jié)省了處理器資源,降低了處理器功耗,提升了處理器性能,具有更好的應(yīng)用前景。
圖1是本發(fā)明的異構(gòu)多核處理器高效任務(wù)調(diào)度方法的任務(wù)調(diào)度實(shí)施結(jié)構(gòu)圖。圖2是本發(fā)明的異構(gòu)多核處理器高效任務(wù)調(diào)度方法的聚簇優(yōu)化處理過程圖。圖3是本發(fā)明的異構(gòu)多核處理器高效任務(wù)調(diào)度方法的任務(wù)分配處理過程圖。圖4是本發(fā)明的異構(gòu)多核處理器高效任務(wù)調(diào)度方法的冗余任務(wù)刪除過程圖。圖5是本發(fā)明的異構(gòu)多核處理器高效任務(wù)調(diào)度方法的調(diào)度結(jié)果優(yōu)化處理過程圖。
具體實(shí)施例方式下面結(jié)合附圖舉例對(duì)本發(fā)明做更詳細(xì)地描述結(jié)合圖1發(fā)明的異構(gòu)多核處理器高效任務(wù)調(diào)度方法包括以下幾個(gè)模塊1、前期任務(wù)圖的聚簇優(yōu)化處理模塊深度優(yōu)先遍歷DAG中的所有節(jié)點(diǎn),將某些特殊的、通信開銷較大的任務(wù)進(jìn)行聚簇優(yōu)化。通過將通信開銷所占整個(gè)任務(wù)總開銷較大的任務(wù)進(jìn)行聚簇,減小整個(gè)任務(wù)的執(zhí)行時(shí)間,優(yōu)化整個(gè)應(yīng)用程序任務(wù)圖,為后續(xù)高效任務(wù)調(diào)度結(jié)果的獲得提供有力保障。聚簇任務(wù)必須同時(shí)滿足三個(gè)條件(1)當(dāng)前節(jié)點(diǎn)只有一個(gè)直接前驅(qū)節(jié)點(diǎn);O)當(dāng)前節(jié)點(diǎn)為其直接前驅(qū)節(jié)點(diǎn)的唯一直接后繼節(jié)點(diǎn);C3)當(dāng)前任務(wù)在不同處理器內(nèi)核上的最大執(zhí)
行開銷小于該任務(wù)與其唯一前驅(qū)節(jié)點(diǎn)間的平均通信開銷,即Inax(W^pO) <δ^ ,其中
節(jié)點(diǎn)tk為節(jié)點(diǎn)、的直接前驅(qū)節(jié)點(diǎn)。2、優(yōu)先級(jí)計(jì)算模塊多核處理器任務(wù)調(diào)度過程中,總?cè)蝿?wù)的完成時(shí)間等于出口節(jié)點(diǎn)的完成時(shí)間。出口節(jié)點(diǎn)的完成時(shí)間受其所有祖先節(jié)點(diǎn)調(diào)度時(shí)間的影響,某一節(jié)點(diǎn)到出口節(jié)點(diǎn)的執(zhí)行開銷和通信開銷之和越大,該節(jié)點(diǎn)對(duì)出口節(jié)點(diǎn)完成時(shí)間的影響就越大,對(duì)整個(gè)任務(wù)調(diào)度長(zhǎng)度的影響就越重,該節(jié)點(diǎn)的優(yōu)先執(zhí)行有利于最大程度地減小整個(gè)任務(wù)調(diào)度的長(zhǎng)度。因此,在任務(wù)優(yōu)先級(jí)權(quán)值的選擇上,為平衡各方面因素對(duì)任務(wù)調(diào)度長(zhǎng)度的影響,考慮到任務(wù)在整個(gè)DAG拓?fù)浣Y(jié)構(gòu)中的位置,在優(yōu)先級(jí)計(jì)算階段將SUCC_sUm(ti)作為任務(wù)的優(yōu)先級(jí)權(quán)值。任務(wù)優(yōu)先級(jí)權(quán)值定義見下式。Succ_Sumiti) = Wi + ^esucci0(Succ_Sumitj) + C(i.,tj))。3、采用區(qū)間插入和任務(wù)復(fù)制的任務(wù)分配模塊新方法在任務(wù)分配過程采用了任務(wù)復(fù)制和區(qū)間插入技術(shù),以提高處理器資源利用率。同時(shí),在整個(gè)調(diào)度過程中每一步都賦予關(guān)鍵路徑節(jié)點(diǎn)以最高的優(yōu)先級(jí),其余節(jié)點(diǎn)按照節(jié)點(diǎn)的優(yōu)先級(jí)權(quán)值降序排列,保證了關(guān)鍵節(jié)點(diǎn)的優(yōu)先調(diào)度,有利于減少總?cè)蝿?wù)的調(diào)度長(zhǎng)度。在任務(wù)分配過程中,首先計(jì)算任務(wù)的優(yōu)先級(jí)權(quán)值和關(guān)鍵路徑節(jié)點(diǎn),將關(guān)鍵路徑節(jié)點(diǎn)標(biāo)記為CP節(jié)點(diǎn),然后將入口節(jié)點(diǎn)作為自由節(jié)點(diǎn)加入調(diào)度隊(duì)列。在調(diào)度過程中,如果調(diào)度隊(duì)列不為空,取隊(duì)列中第一個(gè)任務(wù)ti。如果能夠?qū)i插入到處理器的空閑時(shí)間段,計(jì)算該任務(wù)在該空閑時(shí)間段上的最早完成時(shí)間,并將該任務(wù)分配到該空閑時(shí)間段;否則,計(jì)算任務(wù) ti在每個(gè)處理器內(nèi)核上的最早完成時(shí)間,選擇使任務(wù)ti具有最小最早完成時(shí)間的處理器內(nèi)核Pr如果該最小最早完成時(shí)間是通過任務(wù)復(fù)制獲得,復(fù)制對(duì)應(yīng)的任務(wù)到處理器內(nèi)核Pj,將任務(wù)^分配到處理器內(nèi)核ρ」;如果該最小最早完成時(shí)間不是通過任務(wù)復(fù)制獲得,將任務(wù)、直接分配到處理器內(nèi)核IV完成任務(wù)^的分配過程。最后,將任務(wù)^調(diào)度完成后的所有自由節(jié)點(diǎn)插入調(diào)度隊(duì)列,如果自由節(jié)點(diǎn)中存在CP節(jié)點(diǎn),首先將自由CP節(jié)點(diǎn)加入調(diào)度隊(duì)列的開始,非CP自由節(jié)點(diǎn)按照節(jié)點(diǎn)優(yōu)先級(jí)權(quán)值從大到小的順序加入調(diào)度隊(duì)列。遞歸執(zhí)行以上調(diào)度過程,直到所有任務(wù)調(diào)度完成。本發(fā)明的異構(gòu)多核處理器高效任務(wù)調(diào)度方法中任務(wù)分配過程為(1)遍歷DAG,計(jì)算每個(gè)任務(wù)的優(yōu)先級(jí)權(quán)值Succjumai),并尋找關(guān)鍵路徑節(jié)點(diǎn)標(biāo)記為CP節(jié)點(diǎn)。(2)將入口節(jié)點(diǎn)加入任務(wù)調(diào)度隊(duì)列。(3)判斷調(diào)度隊(duì)列中是否存在未分配任務(wù)。不存在,跳轉(zhuǎn)至(17);存在,繼續(xù)向下執(zhí)行。(4)選擇隊(duì)列中第一個(gè)任務(wù)從調(diào)度隊(duì)列中刪除任務(wù)、。(5)判斷該任務(wù)是否已遍歷所有處理器內(nèi)核。是,跳轉(zhuǎn)至(11);不是,繼續(xù)向下執(zhí)行。(6)取當(dāng)前處理器內(nèi)核Pi。(7)判斷任務(wù)、在處理器內(nèi)核Pi是否滿足區(qū)間插入條件。是,記錄任務(wù)、在當(dāng)前處理器內(nèi)核的最早完成時(shí)間,跳轉(zhuǎn)至(11);不是,繼續(xù)向下執(zhí)行。(8)計(jì)算任務(wù)、在當(dāng)前處理器內(nèi)核的最早完成時(shí)間。判斷任務(wù)復(fù)制是否能夠減小任務(wù)、在該處理器內(nèi)核上的最早完成時(shí)間。不能,跳轉(zhuǎn)至(10);能,繼續(xù)向下執(zhí)行。(9)計(jì)算通過任務(wù)復(fù)制后,任務(wù)、在該處理器內(nèi)核上的最早完成時(shí)間,記錄復(fù)制的任務(wù)和計(jì)算所得的最早完成時(shí)間,跳轉(zhuǎn)至(5)。(10)記錄任務(wù)、在該處理器內(nèi)核上的最早完成時(shí)間,跳轉(zhuǎn)至(5)。(11)選擇使任務(wù)、具有最小最早完成時(shí)間的處理器內(nèi)核P,(12)判斷該最小值是否通過任務(wù)復(fù)制獲得。不是,跳轉(zhuǎn)至(14);是,繼續(xù)向下執(zhí)行。(13)復(fù)制相應(yīng)的任務(wù)到處理器內(nèi)核Pj,將任務(wù)、分配到Pj,跳轉(zhuǎn)至(15)。(14)將任務(wù)、分配到處理器內(nèi)核Pj。(15)判斷是否存在不在調(diào)度隊(duì)列中的自由節(jié)點(diǎn)。不存在,跳轉(zhuǎn)至(3);存在,繼續(xù)向下執(zhí)行。(16)將自由CP節(jié)點(diǎn)插入調(diào)度隊(duì)列的開始,剩余自由節(jié)點(diǎn)按節(jié)點(diǎn)的優(yōu)先級(jí)權(quán)值降序排列插入調(diào)度隊(duì)列,跳轉(zhuǎn)至(3)。(17)任務(wù)分配完成。4、任務(wù)分配后的調(diào)度結(jié)果優(yōu)化模塊調(diào)度結(jié)果優(yōu)化是對(duì)整個(gè)任務(wù)調(diào)度結(jié)果進(jìn)行優(yōu)化處理的過程。為刪除調(diào)度結(jié)果中產(chǎn)生的冗余任務(wù),在調(diào)度結(jié)果優(yōu)化階段建立了任務(wù)復(fù)制列表DL,將復(fù)制任務(wù)及其相關(guān)信息存儲(chǔ)到DL。同時(shí),為充分利用處理器空閑時(shí)間段,冗余任務(wù)刪除后,采用區(qū)間插入技術(shù)優(yōu)化了處理器上所有任務(wù)的最早完成時(shí)間。在優(yōu)化過程中,如果某個(gè)空閑時(shí)間段的長(zhǎng)度不足,在不延長(zhǎng)整個(gè)任務(wù)調(diào)度長(zhǎng)度的前提下,采用后移其它任務(wù)的方法增加空閑時(shí)間段,為優(yōu)化任務(wù)提供足夠空間。調(diào)度結(jié)果優(yōu)化階段首先進(jìn)行冗余任務(wù)的刪除。算法尋遍所有處理器內(nèi)核,將復(fù)制任務(wù)及其相關(guān)信息存儲(chǔ)到任務(wù)復(fù)制列表DL,將列表DL中的任務(wù)按照最早完成時(shí)間從大到小排列。查找任務(wù)復(fù)制列表DL,如果DL不為空,取DL中第一個(gè)任務(wù)k j (表示分配到處理器內(nèi)核Pj上的任務(wù)、),并從DL中刪除任務(wù)、,」。如果刪除處理器內(nèi)核Pj上的任務(wù)、不會(huì)延長(zhǎng)、后繼節(jié)點(diǎn)的完成時(shí)間,任務(wù)ti, j為冗余任務(wù),將任務(wù)、從處理器內(nèi)核ρ」上刪除;如果刪除處理器內(nèi)核P」上的任務(wù)、延長(zhǎng)了其后繼節(jié)點(diǎn)的完成時(shí)間,任務(wù)ti, j為非冗余任務(wù), 不能從調(diào)度結(jié)果中刪除。重復(fù)執(zhí)行以上判斷過程,直到任務(wù)復(fù)制列表DL為空。最后,通過調(diào)度結(jié)果優(yōu)化階段對(duì)冗余任務(wù)刪除后的調(diào)度結(jié)果進(jìn)行優(yōu)化。算法尋遍所有處理器內(nèi)核,記錄每個(gè)處理器內(nèi)核的空閑時(shí)間段和任務(wù)信息,在考慮區(qū)間插入的條件下,重新調(diào)整每個(gè)任務(wù)在該處理器內(nèi)核上的最早完成時(shí)間。在進(jìn)行區(qū)間插入時(shí),尋找開始時(shí)間不小于任務(wù)最早開始時(shí)間的空閑時(shí)間段。如果找到,判斷任務(wù)插入對(duì)整個(gè)調(diào)度長(zhǎng)度的影響。如果能夠減小整個(gè)任務(wù)調(diào)度的長(zhǎng)度,將任務(wù)重新分配到該空閑時(shí)間段,重新計(jì)算任務(wù)的最早完成時(shí)間。以上是本發(fā)明的較佳實(shí)施例,凡依本發(fā)明技術(shù)方案作為改變的,所產(chǎn)生的功能作用未超出本發(fā)明方案范圍的,均屬于本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種異構(gòu)多核處理器高效任務(wù)調(diào)度方法,其特征是(1)任務(wù)圖的聚簇優(yōu)化采用線性任務(wù)聚簇方法,將任務(wù)圖中某些特殊的、通信開銷較大的、容易聚簇的任務(wù)聚簇到其前驅(qū)節(jié)點(diǎn);( 優(yōu)先級(jí)計(jì)算從整個(gè)任務(wù)圖的拓?fù)浣Y(jié)構(gòu)出發(fā),選擇能夠綜合反映任務(wù)在整個(gè)任務(wù)圖中地位的參數(shù)作為優(yōu)先級(jí)權(quán)值;C3)任務(wù)分配首先選取自由關(guān)鍵路徑節(jié)點(diǎn)進(jìn)行分配,如果存在多個(gè)自由關(guān)鍵路徑節(jié)點(diǎn),按照節(jié)點(diǎn)優(yōu)先級(jí)權(quán)值從高到低的順序進(jìn)行分配,所有非關(guān)鍵路徑自由節(jié)點(diǎn)按照優(yōu)先級(jí)權(quán)值從高到低的順序進(jìn)行分配;(4)調(diào)度結(jié)果優(yōu)化通過對(duì)調(diào)度結(jié)果中進(jìn)行復(fù)制的任務(wù)進(jìn)行冗余性判斷,刪除調(diào)度結(jié)果中的冗余任務(wù);通過對(duì)冗余任務(wù)刪除后的調(diào)度結(jié)果進(jìn)行調(diào)整,重新計(jì)算每個(gè)任務(wù)的最早完成時(shí)間。
2.根據(jù)權(quán)利要求1所述的一種異構(gòu)多核處理器高效任務(wù)調(diào)度方法,其特征是聚簇任務(wù)必須同時(shí)滿足三個(gè)條件1)當(dāng)前節(jié)點(diǎn)只有一個(gè)直接前驅(qū)節(jié)點(diǎn);2)當(dāng)前節(jié)點(diǎn)為其直接前驅(qū)節(jié)點(diǎn)的唯一直接后繼節(jié)點(diǎn);3)當(dāng)前任務(wù)在不同處理器內(nèi)核上的最大執(zhí)行開銷小于該任務(wù)與其唯一前驅(qū)節(jié)點(diǎn)間的平均通信開銷,即ma^Wdp』< H),其中節(jié)點(diǎn)tk為節(jié)點(diǎn)、的直接前驅(qū)節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求1所述的一種異構(gòu)多核處理器高效任務(wù)調(diào)度方法,其特征是所述優(yōu)先級(jí)權(quán)值SuCC_sum(ti)為
4.根據(jù)權(quán)利要求1所述的一種異構(gòu)多核處理器高效任務(wù)調(diào)度方法,其特征是所述任務(wù)分配方法為1)遍歷DAG,計(jì)算每個(gè)任務(wù)的優(yōu)先級(jí)權(quán)值Succjumai),并尋找關(guān)鍵路徑節(jié)點(diǎn)標(biāo)記為 CP節(jié)點(diǎn);2)將入口節(jié)點(diǎn)加入任務(wù)調(diào)度隊(duì)列;3)判斷調(diào)度隊(duì)列中是否存在未分配任務(wù),不存在,跳轉(zhuǎn)至17);存在,繼續(xù)向下執(zhí)行;4)選擇隊(duì)列中第一個(gè)任務(wù)從調(diào)度隊(duì)列中刪除任務(wù)、;5)判斷該任務(wù)是否已遍歷所有處理器內(nèi)核,是,跳轉(zhuǎn)至11);不是,繼續(xù)向下執(zhí)行;6)取當(dāng)前處理器內(nèi)核pi;7)判斷任務(wù)^在處理器內(nèi)核Pi是否滿足區(qū)間插入條件,是,記錄任務(wù)^在當(dāng)前處理器內(nèi)核的最早完成時(shí)間,跳轉(zhuǎn)至11);不是,繼續(xù)向下執(zhí)行;8)計(jì)算任務(wù)、在當(dāng)前處理器內(nèi)核的最早完成時(shí)間,判斷任務(wù)復(fù)制是否能夠減小任務(wù)、 在該處理器內(nèi)核上的最早完成時(shí)間,不能,跳轉(zhuǎn)至10);能,繼續(xù)向下執(zhí)行;9)計(jì)算通過任務(wù)復(fù)制后,任務(wù)^在該處理器內(nèi)核上的最早完成時(shí)間,記錄復(fù)制的任務(wù)和計(jì)算所得的最早完成時(shí)間,跳轉(zhuǎn)至5);10)記錄任務(wù)、在該處理器內(nèi)核上的最早完成時(shí)間,跳轉(zhuǎn)至5);11)選擇使任務(wù)、具有最小最早完成時(shí)間的處理器內(nèi)核Pj;12)判斷該最小值是否通過任務(wù)復(fù)制獲得,不是,跳轉(zhuǎn)至14);是,繼續(xù)向下執(zhí)行;13)復(fù)制相應(yīng)的任務(wù)到處理器內(nèi)核Pj,將任務(wù)、分配到Pj,跳轉(zhuǎn)至15);14)將任務(wù)、分配到處理器內(nèi)核Pj;15)判斷是否存在不在調(diào)度隊(duì)列中的自由節(jié)點(diǎn),不存在,跳轉(zhuǎn)至(3);存在,繼續(xù)向下執(zhí)行;16)將自由CP節(jié)點(diǎn)插入調(diào)度隊(duì)列的開始,剩余自由節(jié)點(diǎn)按節(jié)點(diǎn)的優(yōu)先級(jí)權(quán)值降序排列插入調(diào)度隊(duì)列,跳轉(zhuǎn)至3);17)任務(wù)分配完成。
5.根據(jù)權(quán)利要求1所述的一種異構(gòu)多核處理器高效任務(wù)調(diào)度方法,其特征是所述調(diào)度結(jié)果優(yōu)化的方法為首先進(jìn)行冗余任務(wù)的刪除;尋遍所有處理器內(nèi)核,將復(fù)制任務(wù)及其相關(guān)信息存儲(chǔ)到任務(wù)復(fù)制列表DL,將列表DL中的任務(wù)按照最早完成時(shí)間從大到小排列;查找任務(wù)復(fù)制列表 DL,如果DL不為空,取DL中第一個(gè)任務(wù)ty,并從DL中刪除任務(wù);如果刪除處理器內(nèi)核 Pj上的任務(wù)、不會(huì)延長(zhǎng)、后繼節(jié)點(diǎn)的完成時(shí)間,任務(wù)為冗余任務(wù),將任務(wù)、從處理器內(nèi)核Pj上刪除;如果刪除處理器內(nèi)核Pj上的任務(wù)、延長(zhǎng)了其后繼節(jié)點(diǎn)的完成時(shí)間,任務(wù)ti, j為非冗余任務(wù),不能從調(diào)度結(jié)果中刪除;重復(fù)執(zhí)行以上判斷過程,直到任務(wù)復(fù)制列表DL為空;最后,通過調(diào)度結(jié)果優(yōu)化階段對(duì)冗余任務(wù)刪除后的調(diào)度結(jié)果進(jìn)行優(yōu)化;尋遍所有處理器內(nèi)核,記錄每個(gè)處理器內(nèi)核的空閑時(shí)間段和任務(wù)信息,在考慮區(qū)間插入的條件下,重新調(diào)整每個(gè)任務(wù)在該處理器內(nèi)核上的最早完成時(shí)間;在進(jìn)行區(qū)間插入時(shí),尋找開始時(shí)間不小于任務(wù)最早開始時(shí)間的空閑時(shí)間段;如果找到,判斷任務(wù)插入對(duì)整個(gè)調(diào)度長(zhǎng)度的影響;如果能夠減小整個(gè)任務(wù)調(diào)度的長(zhǎng)度,將任務(wù)重新分配到該空閑時(shí)間段,重新計(jì)算任務(wù)的最早完成時(shí)間。
全文摘要
本發(fā)明提供的是一種異構(gòu)多核處理器高效任務(wù)調(diào)度方法。采用線性任務(wù)聚簇方法,將任務(wù)圖中某些特殊的、通信開銷較大的、容易聚簇的任務(wù)聚簇到其前驅(qū)節(jié)點(diǎn);從整個(gè)任務(wù)圖的拓?fù)浣Y(jié)構(gòu)出發(fā),選擇能夠綜合反映任務(wù)在整個(gè)任務(wù)圖中地位的參數(shù)作為優(yōu)先級(jí)權(quán)值;首先選取自由關(guān)鍵路徑節(jié)點(diǎn)進(jìn)行分配,如果存在多個(gè)自由關(guān)鍵路徑節(jié)點(diǎn),按照節(jié)點(diǎn)優(yōu)先級(jí)權(quán)值從高到低的順序進(jìn)行分配,所有非關(guān)鍵路徑自由節(jié)點(diǎn)按照優(yōu)先級(jí)權(quán)值從高到低的順序進(jìn)行分配;進(jìn)行冗余性判斷,刪除調(diào)度結(jié)果中的冗余任務(wù);通過對(duì)冗余任務(wù)刪除后的調(diào)度結(jié)果進(jìn)行調(diào)整,重新計(jì)算每個(gè)任務(wù)的最早完成時(shí)間。本方法提高了異構(gòu)多核處理器任務(wù)調(diào)度的效率、降低了處理器功耗,提升了多核處理器的性能。
文檔編號(hào)G06F9/50GK102193826SQ20111013548
公開日2011年9月21日 申請(qǐng)日期2011年5月24日 優(yōu)先權(quán)日2011年5月24日
發(fā)明者李靜, 李靜梅 申請(qǐng)人:哈爾濱工程大學(xué)