專利名稱:一種基于任務(wù)復(fù)制的多復(fù)本容錯并行任務(wù)調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機領(lǐng)域的并行任務(wù)調(diào)度,特別是有限處理器環(huán)境下的容錯并行DAG任務(wù)調(diào)度方法。
背景技術(shù):
將DAG圖中的并行任務(wù)調(diào)度到處理器機群中以獲得最短執(zhí)行時間一直是并行任務(wù)調(diào)度中的重要研究課題。隨著高速局域網(wǎng)以及分布式計算的發(fā)展,基于分布式主存的并行計算獲得了快速的發(fā)展,分布式環(huán)境下處理器節(jié)點以及網(wǎng)絡(luò)數(shù)據(jù)傳輸都有可能會出現(xiàn)失效問題,因此在滿足系統(tǒng)容錯參數(shù)f 的前提下,追求更短的調(diào)度長度成為需要研究的問題。并行任務(wù)調(diào)度一般分為表調(diào)度、基于任務(wù)機群的調(diào)度、非確定性調(diào)度和基于任務(wù)復(fù)制的調(diào)度,任務(wù)模型一般采用DAG模型。由于局域網(wǎng)環(huán)境下通信開銷成為影響并行計算 效率的主要因素,而同一處理器上前驅(qū)后繼任務(wù)間的數(shù)據(jù)傳輸時間可以忽略不計,一般局域網(wǎng)環(huán)境下可以采用任務(wù)復(fù)制調(diào)度思路,任務(wù)復(fù)制的基本思想是利用處理器的空閑時隙冗余地復(fù)制當(dāng)前任務(wù)的前驅(qū)任務(wù),從而避免任務(wù)間的數(shù)據(jù)傳輸。常用的任務(wù)復(fù)制算法有DSH、PY、LffB, BTDH、LCTD, CPFD 等。上述并行任務(wù)調(diào)度方法不具備容錯能力,分布式并行環(huán)境下,處理器節(jié)點和網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)氖栴}使得容錯能力成為并行計算模型的一個主要的考慮因素。一般并行計算的容錯模式主要有被動復(fù)制(Passive replication/Primary &Backup)和主動復(fù)制(Active replication/N-Modular redundancy),主動復(fù)制容錯也被稱為多復(fù)本容錯。被動復(fù)制技術(shù)是傳統(tǒng)的考慮時間和空間的容錯方法,該方法的主要思想是從任務(wù)只有在主任務(wù)出現(xiàn)錯誤的時候才被激活。該模式的主要優(yōu)點是在提供容錯機制的同時能夠達(dá)到很好的可調(diào)度性,因為任意的任務(wù)節(jié)點只有兩個復(fù)本,而缺點就是容錯能力有限,系統(tǒng)不能容納超過一個節(jié)點的失效問題(fail-stop錯誤)。主動復(fù)制技術(shù)采用空間冗余思想,為了能夠容納f個計算節(jié)點的失效,DAG任務(wù)圖中的任意任務(wù)節(jié)點都將被備份f+1份。下面簡要介紹已有容錯并行調(diào)度方法FTBAR算法和FTSA算法。FTBAR(Fault Tolerant Based Active Replication strategy)算法基于貪心的表調(diào)度思想,算法采用稱為調(diào)度壓力的代價函數(shù),在算法執(zhí)行的第n步,任務(wù)ti調(diào)度到處理器P」上的調(diào)度壓力公式為0 wUi, Pj) =SwUi, Pj)+sUi)-!^1),其中,SwUi, Pj)表示任務(wù)\在處理器Pj上的最早執(zhí)行時間,SUi)表示任務(wù)\的最遲執(zhí)行時間,R(n_D表示第n-1步時的調(diào)度長度,該算法的基本調(diào)度思路如下①對于任意未調(diào)度任務(wù)計算其在所有處理器上的調(diào)度壓力,并記錄調(diào)度壓力最小的f+1個處理器;②選擇所有未調(diào)度任務(wù)\的所有配對〈t” pjk>,選擇其中調(diào)度壓力值最大的任務(wù)ti ;③根據(jù)步驟①的記錄將任務(wù)\調(diào)度到調(diào)度壓力最小的f+1個處理器上,計算最早開始時間。
FTSA(Fault Tolerant Scheduling Algorithm)算法首先米用任務(wù)重要性(taskcriticalness)的概念來衡量DAG任務(wù)的優(yōu)先級,其計算公式如下TC(t)=tl (t)+bl (t),其中,tl(t)表示開始任務(wù)到當(dāng)前任務(wù)的最長路徑,該值為動態(tài)值,依賴于前驅(qū)任務(wù)的調(diào)度安排,bl(t)表示結(jié)束任務(wù)到當(dāng)前任務(wù)的靜態(tài)值,該值可以在調(diào)度開始前根據(jù)DAG圖計算出來,F(xiàn)TSA算法的基本思路如下①計算所有未調(diào)度任務(wù)的重要性值,選擇優(yōu)先隊列中優(yōu)先級最高的任務(wù)ti ;②利用FTSA算法公式計算出任務(wù)ti在所有處理器上的結(jié)束時間,并記錄結(jié)束時間最早的f+1個處理器,然后將任務(wù)ti調(diào)度到這些處理器上;③將任務(wù)\加入已調(diào)度隊列中,并更新任務(wù)\后繼的重要性值,循環(huán)調(diào)度剩余任務(wù)。上述并行任務(wù)調(diào)度方法存在如下不足之處
(l)DSH, PY、LffB, CPFD等算法不具備容錯能力,即任意一個處理器發(fā)生故障,并行任務(wù)無法成功完成;(2)FTSA和FTBAR算法沒有采用任務(wù)復(fù)制來減少局域網(wǎng)環(huán)境下任務(wù)間的通信開銷;(3)沒有考慮處理器數(shù)量有限的情況,即系統(tǒng)中的處理器數(shù)量有限,如何在滿足容錯參數(shù)f的情況下追求更短的調(diào)度長度。
發(fā)明內(nèi)容
發(fā)明目的針對上述現(xiàn)有技術(shù)存在的問題和不足,本發(fā)明的目的是提供一種基于任務(wù)復(fù)制的多復(fù)本容錯并行任務(wù)調(diào)度方法。技術(shù)方案為實現(xiàn)上述發(fā)明目的,本發(fā)明采用的技術(shù)方案為一種基于任務(wù)復(fù)制的多復(fù)本容錯并行任務(wù)調(diào)度方法(CPBAR方法,Critical Path-Based Active Replication),下面首先介紹CPBAR方法使用的基本符號如下f :系統(tǒng)容錯要求,即系統(tǒng)最多能夠容納f個處理器錯誤,因此采用(f+1)個復(fù)本來容錯;m =DAG圖的任務(wù)數(shù)目;n :系統(tǒng)中實際的處理器數(shù)目;c (ti; tj):任務(wù)\與tj間的數(shù)據(jù)傳輸時間;tp G Predai)表示任務(wù)\的前驅(qū)任務(wù);Pj :處理器編號(Pj G P,I彡j彡m);FT Ui, Pj):任務(wù)\在處理器Pj上的完成時間;:任務(wù)\的第k個復(fù)本(I彡i彡n, I彡k彡f+1);nc (t):任務(wù)\的實際復(fù)本數(shù);P(/f ):表示任務(wù)\的第k個復(fù)本所在的處理器;FTi/; ,P(/;)):任務(wù)\的第k個復(fù)本的完成時間;RT(Pj):處理器P」的可用時間;DAT (tp, Pj):任務(wù)tp的數(shù)據(jù)到達(dá)處理器Pj上的到達(dá)時間;ESKti, Pj)表示任務(wù)\在處理器Pj上的最早開始時間;
OPKti):任務(wù)的最早開始時間優(yōu)化值,即采用空處理器來進(jìn)行并行復(fù)本調(diào)度,任務(wù)\的最早開始時間的優(yōu)化值。CPBAR方法包括如下步驟(I)確定任務(wù)優(yōu)先級;采用以關(guān)鍵路徑構(gòu)建優(yōu)先級隊列的方法來確定任務(wù)的屬性優(yōu)先級;(2)預(yù)調(diào)度首先根據(jù)關(guān)鍵路徑構(gòu)造任務(wù)優(yōu)先級隊列,假定處理器數(shù)量無限,每輪調(diào)度加入f+1個空處理器,首先利用多復(fù)本任務(wù)復(fù)制函數(shù)MST_AR()計算任務(wù)\在當(dāng)前所有處理器上的最早開始時間優(yōu)化值EST (t” Pj), Pj為處理器編號,通過計算選擇空處理器和不選擇空處理器兩種情況下的最早開始時間的差值來獲得最早開始時間優(yōu)化值OPTai),然后選擇EST Ui, Pj)值最小的f+1個處理器預(yù)放置\的f+1個復(fù)本,以〈t” OPT Ui) >的格式記錄最早開始時間優(yōu)化值;
(3)重調(diào)度首先按照最早開始時間優(yōu)化值排序,然后統(tǒng)計任務(wù)\在最早開始時間優(yōu)化值集合中出現(xiàn)的次數(shù)z (\),然后每輪調(diào)度加入z Ui)個空處理器,調(diào)用MST_AR()函數(shù)計算任務(wù)\在當(dāng)前所有處理器上的最早開始時間EST (t” Pj),選擇開始時間最早的f+1個處理器來放置任務(wù)ti的所有復(fù)本,從而完成任務(wù)調(diào)度。進(jìn)一步地,在多復(fù)本任務(wù)復(fù)制函數(shù)MST_AR()中,利用MST_AR()函數(shù)計算任務(wù)\的在處理器Pj上的最早開始時間EST (t” Pj)時①任務(wù)&在處理器Pj上的最早開始時間取決于其所有前驅(qū)任務(wù)的數(shù)據(jù)到達(dá)時間與該處理器的可用時間,前驅(qū)任務(wù)的數(shù)據(jù)達(dá)到時間等于前(f+1)個復(fù)本的數(shù)據(jù)到達(dá)時間,但不需要等待該前驅(qū)所有復(fù)本的數(shù)據(jù);②若本地有前驅(qū)任務(wù)tp的一個復(fù)本,則不需要等待tp的其他復(fù)本;預(yù)調(diào)度階段計算最早開始時間優(yōu)化值中,每輪加入f+1個處理器,記錄處理器空閑狀態(tài)empty (ti),根據(jù)MST_AR()函數(shù)計算任務(wù)\在當(dāng)前所有處理器上的最早開始時間EST (t” Pj),將最早開始時間按照處理器的空閑狀態(tài)分為兩組并升序排列,兩組的差值就是任務(wù)ti選擇空處理器獲得的最早開始時間優(yōu)化值集合;重調(diào)度階段,系統(tǒng)中處理器數(shù)量n有限,首先降序排序所有任務(wù)的最早開始時間優(yōu)化值,選擇優(yōu)化值最好的n個記錄,記為集合F,并統(tǒng)計任務(wù)t在最早開始時間優(yōu)化值集合F中出現(xiàn)的次數(shù)z Ui),最后在每輪調(diào)度中,對于當(dāng)前任務(wù)\加入Hti)個空處理器。CPBAR方法具有以下優(yōu)點(I)容錯能力本發(fā)明采用主動復(fù)制容錯策略,將DAG(有向無環(huán)圖)圖中的任意任務(wù)備份f+1份來容納f個處理器fail-stop (故障停止)錯誤,即容錯參數(shù)為f的CPBAR方法可以容納f個處理器出現(xiàn)故障停止錯誤,并保證并行任務(wù)最終成功執(zhí)行。(2)更短的調(diào)度長度CPBAR方法采用改進(jìn)的多復(fù)本任務(wù)復(fù)制函數(shù)MST_AR(),有效地利用冗余思想減少任務(wù)間的數(shù)據(jù)傳輸時間,從而獲得更短的調(diào)度長度,最終得到更高的并行效率和并行加速比。(3)應(yīng)對有限處理器環(huán)境CPBAR方法提出了最早開始時間優(yōu)化值的概念,并基于此概念來分配有限的處理器資源,從而獲得更好的調(diào)度長度。
圖I為最早開始時間優(yōu)化值示意圖; 圖2為求解拉普拉斯方程DAG圖。
具體實施例方式下面結(jié)合附圖和具體實施例,進(jìn)一步闡明本發(fā)明,應(yīng)理解這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對本發(fā)明的各種等價形式的修改均落于本申請所附權(quán)利要求所限定的范圍。并行任務(wù)調(diào)度一般分為三步,首先確定任務(wù)節(jié)點的優(yōu)先級,然后考慮優(yōu)先級最高 的任務(wù),最后將該任務(wù)分配到能使它最早執(zhí)行的處理器上。(I)確定任務(wù)優(yōu)先級本發(fā)明采用關(guān)鍵路徑(Critical Path)構(gòu)建優(yōu)先級隊列的方法來確定任務(wù)的屬性優(yōu)先級。DAG圖的關(guān)鍵路徑指的是從開始任務(wù)到結(jié)束任務(wù)間具有最大計算開銷與通信開銷的路徑,關(guān)鍵路徑上的任務(wù)決定算法的調(diào)度長度。將DAG圖中的任務(wù)節(jié)點分為三類,關(guān)鍵路徑上的節(jié)點稱為CPN節(jié)點(關(guān)鍵路徑節(jié)點),有路徑到達(dá)CPN節(jié)點的節(jié)點稱為IBN節(jié)點(入枝節(jié)點),不能到達(dá)CPN節(jié)點的節(jié)點稱為OBN節(jié)點(出枝節(jié)點)。上述三種類型節(jié)點的優(yōu)先 級順序是CPN>IBN>0BN,為簡單起見,本發(fā)明不考慮OBN節(jié)點,即DAG圖只有一個開始節(jié)點和一個結(jié)束節(jié)點,優(yōu)先級隊列的構(gòu)造方法如下所示任務(wù)優(yōu)先級隊列構(gòu)造方法①計算圖的關(guān)鍵路徑CP,確定CPN節(jié)點、IBN節(jié)點;②初始化任務(wù)優(yōu)先級隊列為空,將關(guān)鍵路徑上的第一個節(jié)點加入隊列中(即開始任務(wù)節(jié)點),令tMxt為關(guān)鍵路徑上下一個CPN節(jié)點;while還有CPN節(jié)點未加入隊列if任務(wù)tMxt的所有前驅(qū)任務(wù)都在隊列中
③將任務(wù)tnrart加入到隊列中else④令tp G pred(tnext)是不在隊列中的具有最大的b-level值的任務(wù),若tp的所有前驅(qū)任務(wù)都在隊列中,將tp加入隊列;否則遞歸地加入所有tp的前驅(qū)任務(wù);⑤循環(huán)上述步驟直至tnext的所有前驅(qū)任務(wù)都已經(jīng)加入隊列,將tnext加入隊列中end if⑥令tnext為下一個CPN節(jié)點end while所構(gòu)造的任務(wù)優(yōu)先級隊列符合DAG圖中的前驅(qū)后繼順序,任意CPN節(jié)點的前驅(qū)任務(wù)IBN節(jié)點都在該CPN之前加入到隊列中。(2)公式與多復(fù)本任務(wù)復(fù)制函數(shù)MST_AR()確定了任務(wù)優(yōu)先級隊列后,需要選擇隊列中具有最高優(yōu)先級任務(wù)將其調(diào)度到使其具有最早開始時間的(f+1)個處理器上。本發(fā)明采用任務(wù)復(fù)制方法確定任務(wù)^在處理器Pj上的最早開始時間,即嘗試遞歸地復(fù)制任務(wù)\的最重要前驅(qū)任務(wù)到處理器Pj上以忽略任務(wù)ti與其前驅(qū)任務(wù)間的數(shù)據(jù)傳輸?shù)却龝r間,比較能否讓任務(wù)ti的最早開始時間EST提前,以減少調(diào)度長度,首先介紹任務(wù)復(fù)制函數(shù)需要的公式。公式一任務(wù)完成時間與復(fù)本完成時間的關(guān)系。任務(wù)t的前(f+1)個復(fù)本完成表示該任務(wù)完成,令h的實際復(fù)本數(shù)為nc Ui),則其完成時間FmishTime(ti)= MINf+lth{)FT(彳,P($)) }(I)其中,MINf+1 th表示按任務(wù)\ 復(fù)本的完成時間排序,第f+1個復(fù)本的完成時間。公式二前驅(qū)任務(wù)tp的數(shù)據(jù)到達(dá)時間DAT (tp,Pj)等于前(f+1)個復(fù)本的數(shù)據(jù)到達(dá)時間DAT(Ui)=MINf+lth{ U"r(,J,) DAT( tkp ,Pj)}=MINf+ltl1 {( FT(^ ,P(^))+c(tp,t,) ) }(2)公式二的前驅(qū)任務(wù)的達(dá)到時間可以進(jìn)行優(yōu)化,若任務(wù)tp的一個復(fù)本^與任務(wù)\在同一個處理器上,則DAT (tp,Pj) =FT (tp,Pj),即任務(wù)\不需要等待%的(f+1)個復(fù)本執(zhí)行完成,只需要等待^執(zhí)行完成即可。因為若該處理器正常運行,則可以直接獲?。サ臄?shù)據(jù);若該處理器崩潰,也不需要等待tp其他復(fù)本的數(shù)據(jù)。MC-FTSA算法也是基于類似的假設(shè)來降低數(shù)據(jù)通信量。公式三任務(wù)\在處理器Pj上的最早開始時間取決于其所有前驅(qū)任務(wù)的數(shù)據(jù)到達(dá)時間與該處理器的可用時間EST(tj,pj) = max { max I DAJ(tp.pi)} . RTfpj) }()公式四VIP前驅(qū)任務(wù)的確定。任務(wù)\的最重要前驅(qū)任務(wù)就是數(shù)據(jù)到達(dá)時間最遲的前驅(qū)任務(wù),即t_= ,: , DAT^Pl)(4)基于上述公式,基于任務(wù)復(fù)制的最早開始時間函數(shù)MST函數(shù)核心思想如下最小化任務(wù)\的開始時間,需要通過復(fù)制VIP前驅(qū)任務(wù)到該處理器上以避免數(shù)據(jù)傳輸時間,并通過遞歸求解前驅(qū)任務(wù)的最早開始時間獲得任務(wù)\的最早開始時間。CPFD算法研究的是無限處理器環(huán)境下的不考慮容錯的任務(wù)調(diào)度,本發(fā)明研究有限處理器環(huán)境下基于主動復(fù)制的容錯技術(shù),因此修改后的最早開始時間計算函數(shù)MST_AR(ti,pp如下①將多復(fù)本容錯技術(shù)應(yīng)用到最早開始時間計算函數(shù)中(公式二、公式三),任務(wù)\的最早開始時間依賴于該任務(wù)的最早完成的(f+1)個復(fù)本的最遲時間(公式一);②增加數(shù)組empty (Pj)存儲函數(shù)MST_AR(ti,Pj)執(zhí)行前處理器Pj的狀態(tài),為最早開始時間優(yōu)化值的計算做準(zhǔn)備。多復(fù)本任務(wù)復(fù)制函數(shù)MST_AR(ti,Pj)的實現(xiàn)如下所示多復(fù)本任務(wù)復(fù)制函數(shù)MST_AR(ti,Pj)①記錄處理器當(dāng)前狀態(tài)若處理器化為空處理器,empty (pj =TRUE,否則empty (Pj) =FALSE ;②根據(jù)公式2、公式3計算任務(wù)\在處理器Pj上的最早開始時間;③根據(jù)公式4計算得到任務(wù)&的VIP前驅(qū)任務(wù)tvip ;④遞歸調(diào)用MST_AR(tvip,Pj)來計算tvip的最早開始時間;
⑤計算新的最早開始時間EST,若最早開始時間沒有提前,則取消步驟4中的任務(wù)復(fù)制;否則循環(huán)調(diào)度tvip的前驅(qū)任務(wù)⑥記錄最早開始時間以及調(diào)度方案(調(diào)度前驅(qū)VIP任務(wù)的過程)(3)任務(wù)調(diào)度基于MST_AR(ti,Pj)函數(shù)以及狀態(tài)數(shù)組empty (Pj),本發(fā)明提出了最早開始時間優(yōu)化值的概念。假設(shè)任務(wù)\為當(dāng)前調(diào)度的任務(wù),Hli為當(dāng)前系統(tǒng)中處理器數(shù)并記錄處理器的空閑(empty)狀態(tài),利用MST_AR函數(shù)計算任務(wù)\在當(dāng)前所有處理器上的最早開始時間EST (ti; Pj),CPBAR方法首先排序所有的EST (ti; Pj),選擇EST最早的(f+1)個處理器來放置任務(wù)tp即最優(yōu)調(diào)度。假設(shè)任務(wù)\的最優(yōu)調(diào)度中使用了 x=e(ti)個空處理器,記為pel,pe2,…,Pex,處理器pal,pa2,…,pax為非最優(yōu)調(diào)度中的處理器,上述處理器編號都是按照最早開始時間降序排列,如圖I所示。 若處理器數(shù)不夠,則用非空處理器Pa來代替空處理器Pe來放置任務(wù)tp因此可以計算任務(wù)ti選擇空處理器進(jìn)行放置,所獲得的最早開始時間優(yōu)化值OPT Ui)OPKti) =ESKti, pa)-ESKti, pe)(5)通過公式(5)可以看出,任務(wù)\選擇空處理器放置復(fù)本而沒有選擇非空處理器,可以獲得最早開始時間上的提升,即最早開始時間優(yōu)化值。假設(shè)ne(ti)表示任務(wù)\選擇的(f+1)個處理器中空處理器的數(shù)量,那么需要計算Iieai)個最早開始時間優(yōu)化值,無限處理
器環(huán)境下算法需要的處理器總數(shù)為Z噸)。
l<t<mCPBAR方法采用關(guān)鍵路徑來確定任務(wù)的優(yōu)先級順序,提出最早開始時間優(yōu)化值來改進(jìn)有限處理器資源環(huán)境下處理器資源的分配問題。CPBAR分為兩輪,方法描述如下所示CPBAR調(diào)度方法①計算DAG圖關(guān)鍵路徑,構(gòu)造任務(wù)優(yōu)先級隊列,初始化N = O;
While任務(wù)優(yōu)先級隊列中存在未調(diào)度任務(wù)②令任務(wù)ti為隊列中優(yōu)先級最高的未調(diào)度任務(wù);③每輪調(diào)度加入f+1空處理器,記錄當(dāng)前所有處理器的狀態(tài)empty (Pj),調(diào)用函數(shù)計算任務(wù)ti在當(dāng)前所有處理器上的最早開始時間EST(ti,Pj);④選擇ESTai,Pj)值最小的f+1處理器預(yù)放置任務(wù)h的f+1個復(fù)本;若其中含有Iieai)個空處理器,計算采用上述空處理器的最早開始時間優(yōu)化值
J-Tteiii)U OPT(ti),并以
J=IUilOPTai) >的格式記錄下來;⑤任務(wù)&調(diào)度完成,統(tǒng)計N+=ne (t^ ;End Whileif N^n(n為實際處理器數(shù))⑥按照預(yù)調(diào)度方案調(diào)度任務(wù),算法結(jié)束;end if⑦將最早開始時間優(yōu)化值集合按照降序排列,選擇優(yōu)化值最好的n個記錄,記為集合F;
⑧重新初始化任務(wù)優(yōu)先級隊列所有任務(wù)為未調(diào)度狀態(tài);While任務(wù)優(yōu)先級隊列中存在未調(diào)度任務(wù)⑨令任務(wù)\為級隊列中優(yōu)先級最高的未調(diào)度任務(wù);⑩統(tǒng)計任務(wù)&在最早開始時間優(yōu)化值集合F中出現(xiàn)的次數(shù)z (t^ ; 加入z (t^個空處理器,調(diào)用函數(shù)計算任務(wù)\在當(dāng)前所有處理器上的最早開始時間ESTai, Pj);選擇開始時間最早的f+1個處理器來放置任務(wù)\的所有復(fù)本; 重調(diào)度完成。End while第一輪預(yù)調(diào)度假設(shè)處理器數(shù)量無限,采用MST_AR函數(shù)計算任務(wù)\在所有處理器上的最早開始時間EST (ti; Pj)以及empty (Pj),若采用空處理器的數(shù)為m(t,),那么計算任務(wù)h采用這些空處理器獲得的最早開始時間優(yōu)化值
權(quán)利要求
1.一種基于任務(wù)復(fù)制的多復(fù)本容錯并行任務(wù)調(diào)度方法,包括如下步驟 (1)確定任務(wù)優(yōu)先級;采用以關(guān)鍵路徑構(gòu)建優(yōu)先級隊列的方法來確定任務(wù)的屬性優(yōu)先級; (2)預(yù)調(diào)度首先根據(jù)關(guān)鍵路徑構(gòu)造任務(wù)優(yōu)先級隊列,假定處理器數(shù)量無限,每輪調(diào)度加入f+1個空處理器,首先利用多復(fù)本任務(wù)復(fù)制函數(shù)MST_AR()計算任務(wù)\在當(dāng)前所有處理器上的最早開始時間優(yōu)化值EST (t” Pj), Pj為處理器編號,通過計算選擇空處理器和不選擇空處理器兩種情況下的最早開始時間的差值來獲得最早開始時間優(yōu)化值OPT(ti),然后選擇EST (ti; Pj)值最小的f+1個處理器預(yù)放置\的f+1個復(fù)本,以〈t” OPT (tj >的格式記錄最早開始時間優(yōu)化值; (3)重調(diào)度首先按照最早開始時間優(yōu)化值排序,然后統(tǒng)計任務(wù)\在最早開始時間優(yōu)化值集合中出現(xiàn)的次數(shù)z (\),然后每輪調(diào)度加入z Ui)個空處理器,調(diào)用MST_AR()函數(shù)計算任務(wù)\在當(dāng)前所有處理器上的最早開始時間EST (t” Pj),選擇開始時間最早的f+1個處理器來放置任務(wù)^的所有復(fù)本,從而完成任務(wù)調(diào)度。
2.根據(jù)權(quán)利要求I所述一種基于任務(wù)復(fù)制的多復(fù)本容錯并行任務(wù)調(diào)度方法,其特征在于 在多復(fù)本任務(wù)復(fù)制函數(shù)MST_AR()中,利用MST_AR()函數(shù)計算任務(wù)\的在處理器Pj_上的最早開始時間ESKti, Pj)時 ①任務(wù)\在處理器Pj上的最早開始時間取決于其所有前驅(qū)任務(wù)的數(shù)據(jù)到達(dá)時間與該處理器的可用時間,前驅(qū)任務(wù)的數(shù)據(jù)達(dá)到時間等于前(f+1)個復(fù)本的數(shù)據(jù)到達(dá)時間,但不需要等待該前驅(qū)所有復(fù)本的數(shù)據(jù); ②若本地有前驅(qū)任務(wù)tp的一個復(fù)本,則不需要等待tp的其他復(fù)本; 預(yù)調(diào)度階段計算最早開始時間優(yōu)化值中,每輪加入f+1個處理器,記錄處理器空閑狀態(tài)emptyUi),根據(jù)MST_AR()函數(shù)計算任務(wù)\在當(dāng)前所有處理器上的最早開始時間EST (t” Pj),將最早開始時間按照處理器的空閑狀態(tài)分為兩組并升序排列,兩組的差值就是任務(wù)ti選擇空處理器獲得的最早開始時間優(yōu)化值集合; 重調(diào)度階段,系統(tǒng)中處理器數(shù)量n有限,首先降序排序所有任務(wù)的最早開始時間優(yōu)化值,選擇優(yōu)化值最好的n個記錄,記為集合F,并統(tǒng)計任務(wù)ti在最早開始時間優(yōu)化值集合F中出現(xiàn)的次數(shù)z Ui),最后在每輪調(diào)度中,對于當(dāng)前任務(wù)\加入Hti)個空處理器。
全文摘要
本發(fā)明公開了一種基于任務(wù)復(fù)制的多復(fù)本容錯并行任務(wù)調(diào)度方法,包括如下步驟首先確定任務(wù)節(jié)點的優(yōu)先級,然后考慮優(yōu)先級最高的任務(wù),最后將該任務(wù)分配到能使它最早執(zhí)行的處理器上。本發(fā)明容錯能力強,有更短的調(diào)度長度,能應(yīng)對有限處理器環(huán)境。
文檔編號G06F9/50GK102799475SQ201210225099
公開日2012年11月28日 申請日期2012年6月29日 優(yōu)先權(quán)日2012年6月29日
發(fā)明者汪蕓, 馬俊 申請人:東南大學(xué)