基于異構(gòu)多核處理器的靜態(tài)任務(wù)調(diào)度研究(一)
摘 要:針對現(xiàn)存任務(wù)調(diào)度算法優(yōu)先級選取過于單一、冗余任務(wù)處理較晚的問題,提出一種基于加權(quán)優(yōu)先級的任務(wù)調(diào)度算法-WPTS算法。該算法綜合考慮任務(wù)3個屬性的加權(quán)值以決定任務(wù)被處理的先后次序,從而克服了任務(wù)選取時的單一性問題。在將任務(wù)分配到處理器的過程中,保證任務(wù)優(yōu)先調(diào)度到完成時間最早的處理器上。同時,引入冗余任務(wù)處理過程,及時消除冗余任務(wù),達到對處理器空閑時間段進行有效回收、減少處理器調(diào)度長度的效果。性能對比實驗表明,WPTS算法較CPFD算法、HCPFD算法和HDEFT算法能取得更好的性能。
本文引用地址:http://www.bjwjmy.cn/article/148036.htm0 引 言
異構(gòu)多核處理器以其芯片面積利用率高、處理器功耗低、應(yīng)用程序的并行化程度高等諸多優(yōu)勢成為處理器體系結(jié)構(gòu)發(fā)展的一個重要方向,同時它的出現(xiàn)給計算機學(xué)科發(fā)展帶來了新的挑戰(zhàn)。研究發(fā)現(xiàn)多核處理器任務(wù)調(diào)度的優(yōu)劣對處理器的執(zhí)行時間、任務(wù)調(diào)度長度、處理器的功耗等諸多性能產(chǎn)生直接影響。因此,多核處理器的任務(wù)調(diào)度作為影響操作系統(tǒng)性能的重要因素成為近年來系統(tǒng)結(jié)構(gòu)方向的熱點研究問題之一。當(dāng)前對異構(gòu)多核處理器上任務(wù)調(diào)度的研究很少考慮任務(wù)優(yōu)先級的選取對調(diào)度結(jié)果的影響以及使用復(fù)制技術(shù)的任務(wù)調(diào)度算法會產(chǎn)生冗余任務(wù)的問題。
本文深入分析了CPFD、HCPFD和HDEFT這3種最具有代表性的任務(wù)調(diào)度算法,并在總結(jié)目前任務(wù)調(diào)度算法存在的缺點基礎(chǔ)上,根據(jù)異構(gòu)多核處理器系統(tǒng)結(jié)構(gòu)的特點,設(shè)計了基于加權(quán)優(yōu)先級的任務(wù)調(diào)度算法(weighted prioritytask scheduling,WPTS),算法以3個參數(shù)構(gòu)成的加權(quán)值作為任務(wù)的優(yōu)先級,將任務(wù)排序構(gòu)成任務(wù)調(diào)度列表,然后依次將任務(wù)映射到處理器上,并在映射過程中對任務(wù)進行優(yōu)化處理,最后通過預(yù)先設(shè)定的性能評價參數(shù)對算法進行實驗驗證。本研究能有效改善原有任務(wù)調(diào)度算法的不足,提升了多核處理器在實際應(yīng)用中的性能,對異構(gòu)多核處理器上靜態(tài)任務(wù)調(diào)度技術(shù)的發(fā)展具有重大理論和現(xiàn)實意義。
1 WPTS算法設(shè)計
1.1 3種現(xiàn)有高效算法的分析
目前基于異構(gòu)多核處理器取得較好調(diào)度性能的算法有CPFD算法、HCPFD算法和HDEFT算法。CPFD算法使用任務(wù)節(jié)點到入口節(jié)點的最長路徑b-level作為任務(wù)調(diào)度的優(yōu)先級,將任務(wù)調(diào)度到具有最早完成時間的處理器上,其時間復(fù)雜度是O (v4),v是DAG圖中任務(wù)節(jié)點的數(shù)目。
HCPFD算法以關(guān)鍵任務(wù)和任務(wù)的最晚開始時間劃分任務(wù)的優(yōu)先級,將任務(wù)分配到使其完成時間最早的處理器節(jié)點上,在任務(wù)到處理器的映射階段優(yōu)先考慮使用處理器上的空閑時間段來處理任務(wù),其時間復(fù)雜度為O (pv2),p是任務(wù)調(diào)度中處理器的總個數(shù)。HDEFT算法在任務(wù)分配階段采用sumu (vi)作為任務(wù)優(yōu)先級,在任務(wù)到處理器的映射階段使用任務(wù)插入和復(fù)制技術(shù),其時間復(fù)雜度為O (pv2)。
CPFD算法和HCPFD算法的調(diào)度性能不夠理想,原因在于算法只選擇唯一任務(wù)屬性作為任務(wù)的優(yōu)先級,沒有考慮任務(wù)間的約束關(guān)系和通信開銷等影響調(diào)度性能的重要因素。HDEFT算法時間復(fù)雜度不高,但沒有對使用任務(wù)復(fù)制技術(shù)后存在的冗余任務(wù)進行處理,冗余任務(wù)延長了總的任務(wù)調(diào)度完成時間,浪費了處理器資源。
本文在總結(jié)并分析上述算法不足的基礎(chǔ)上,設(shè)計出WPTS算法,并給出任務(wù)調(diào)度實驗以驗證新算法的正確性和有效性。
1.2 WPTS算法執(zhí)行過程
WPTS算法的執(zhí)行分為兩個階段:任務(wù)優(yōu)先級計算和任務(wù)到處理器的映射。其中第一階段包括任務(wù)合并、任務(wù)分層和任務(wù)權(quán)值計算3個過程,第二階段包括任務(wù)分配到處理器和任務(wù)調(diào)度結(jié)果優(yōu)化兩個過程,如圖1所示。

圖1 WPTS算法執(zhí)行過程
1.3 WPTS算法實現(xiàn)原理
1.3.1 任務(wù)優(yōu)先級計算階段
(1)任務(wù)優(yōu)先級計算階段的設(shè)計思想任務(wù)合并是將任務(wù)中較獨立、任務(wù)間通信開銷較大的任務(wù)進行合并優(yōu)化。對DAG圖進行深度優(yōu)先搜索,當(dāng)任務(wù)vi只有一個直接后繼節(jié)點vj、任務(wù)vj只有一個直接前驅(qū)節(jié)點vi,且c (vi,vj)≥wj,k,即任務(wù)vi、vj間的通信開銷大于任務(wù)vj在所有處理器上的平均執(zhí)行開銷,則合并任務(wù)vi、vj,并記為vi*,vi*的計算開銷為vi、vj計算開銷的總和,在隨后的調(diào)度中任務(wù)vi*被作為整體處理。
任務(wù)分層是為方便后續(xù)任務(wù)權(quán)值的計算。用level標(biāo)記任務(wù)在DAG圖中的層數(shù),設(shè)置入口節(jié)點任務(wù)level=0,從上到下遍歷任務(wù)DAG圖,計算任務(wù)節(jié)點到入口節(jié)點的最大通信邊數(shù)目,以此作為任務(wù)的level值。非入口節(jié)點任務(wù)vi的level值為其所有前驅(qū)節(jié)點的最大level值加1,計算公式如下所示level(vi)=Max (level(vj))+1,vj∈pred (vi)(1)在任務(wù)權(quán)值計算過程中,WPTS算法綜合考慮任務(wù)各屬性對任務(wù)優(yōu)先級排序的影響,選擇使用平均計算開銷和通信開銷作為任務(wù)的優(yōu)先級參數(shù)。平均計算開銷ACC是任務(wù)在所有處理器上計算開銷的平均值,計算公式如式(2)所示。通信開銷包括平均數(shù)據(jù)傳輸開銷ADTC和平均數(shù)據(jù)接收開銷ADRC,計算公式如式(3)和式(4)所示,式中x為vi直接后繼節(jié)點數(shù)量,y為vi直接前驅(qū)節(jié)點數(shù)量

定義weight (vi)為任務(wù)vi的權(quán)值,它是任務(wù)的ADTC、ADRC、ACC之和,對每個處在level=i層的任務(wù)來說weight(vi)的計算公式如公式下所示weight(vi)=ADTC (vi)+ADRC (vi)+ACC (vi)(5)(2)任務(wù)優(yōu)先級計算階段流程
任務(wù)優(yōu)先級計算流程如圖2所示。

圖2 任務(wù)優(yōu)先級計算階段流程
任務(wù)優(yōu)先級計算階段完成后,所有的任務(wù)已經(jīng)按照優(yōu)先級從高到低的次序加入到調(diào)度列表中,可以繼續(xù)執(zhí)行任務(wù)到處理器映射階段的步驟。
1.3.2 任務(wù)到處理器映射階段
(1)任務(wù)到處理器映射階段的設(shè)計思想
任務(wù)到處理器映射階段包括任務(wù)映射到處理器和處理圖2 任務(wù)優(yōu)先級計算階段流程器上的冗余任務(wù)處理。
在任務(wù)映射到處理器的過程中,遍歷所有處理器,直接將任務(wù)vi分配到具有最早完成時間的處理器上,其完成時間記為EFT1;將vi分配具有空閑時間段的處理器上且不使用任務(wù)復(fù)制技術(shù)的最早完成時間為EFT2;記使用復(fù)制任務(wù)技術(shù)復(fù)制任務(wù)vi的直接前驅(qū)節(jié)點到vi所處的處理器空閑時間段上最早完成時間為EFT3.比較三者的值,將任務(wù)vi分配到具有最小完成時間的處理器上。EFT1、EFT2、EFT3的計算公式如下
評論