專利名稱:一種異構分布式系統(tǒng)中基于自適應閾值的節(jié)能調度方法
技術領域:
本發(fā)明涉及一種計算機系統(tǒng)節(jié)能調度方法,特別是涉及一種支持異構分布式系統(tǒng)中基于自適應閾值的節(jié)能調度方法。
背景技術:
異構分布式系統(tǒng)(HDS)通常由許多具有不同處理能力的計算資源組成,這些計算資源通過能夠滿足各種應用要求的高速網絡相互連接起來。過去幾年中,異構分布式系統(tǒng)已經成為非常流行的計算平臺,為計算密集型和通信密集型任務提供各種計算需求。異構分布式系統(tǒng)已經在工商業(yè)等諸多領域得到廣泛應用。然而,異構分布式系統(tǒng)在提供強大計算能力的同時也消耗了巨大的能量。根據UN (Energy User News)報告,現今, 集群計算中心能量需求從150W/ft2到200W/ft2,在未來幾年將會增加到200-300W/ft2。美國聯(lián)邦環(huán)境保護署(EPA)于2009年8月提交了一份關于數據中心的報告。這份報告稱,數據中心的能源消耗從2000年至2006年增長了一倍,預計到2011年再增長一倍。巨大的能耗代價成為制約異構分布式系統(tǒng)發(fā)展的重要瓶頸,急需得到有效的解決。用有向無環(huán)圖DAG(DireCted Acyclic Graph)來表示并行任務調度問題一直是學術界的研究熱點,并行任務調度問題已經被證明是NP完全問題,在國內外引起了廣泛的研究。調度的目標是要在滿足任務優(yōu)先約束關系的前提下,根據適當的分配策略確定一種分派和執(zhí)行順序,將可并行執(zhí)行的任務合理分配到各處理機上有序地執(zhí)行,以達到減少總的執(zhí)行時間的目的?;诓煌恼{度策略,現有的調度方法主要可以分為三類表調度方法,聚簇調度方法,基于任務復制的調度方法。異構分布式系統(tǒng)中的節(jié)能可以采取傳統(tǒng)的調度方法,運行流程也非常相似,只是在調度時綜合考慮了節(jié)能這一目標。其中,調度方法的選擇對于調度結果具有較大的影響,因為不恰當的調度方法可能會使真正強大的計算能力得不到體現, 甚至會降低系統(tǒng)性能,增加系統(tǒng)能耗。目前,現有的節(jié)能調度方法大多數是基于以上三種調度方法,再結合動態(tài)電壓調節(jié)(DVS)、動態(tài)功耗管理(DPM)等節(jié)能技術來優(yōu)化系統(tǒng)能耗。動態(tài)電壓調節(jié)(DVS)技術是近年來微處理器低功耗設計的一個突破,它允許動態(tài)地調節(jié)微處理器電壓和頻率,同時保證系統(tǒng)正常工作。目前,在嵌入式硬件電路設計中,無論是CPU,還是外圍I/O接口,都普遍使用CMOS邏輯電路。在CMOS邏輯電路中,功耗與頻率以及電壓的二次方成正比。雖然降低頻率/電壓會導致任務執(zhí)行時間的增加,但根據并行任務之間的依賴關系探索任務空閑時間,利用動態(tài)電壓調節(jié)(DVS)技術合理地調節(jié)處理器電壓,在不影響其他任務執(zhí)行的前提下,可以有效地降低處理器能耗。在電壓調節(jié)過程中, 電壓管理芯片能夠執(zhí)行微小的電壓調整,并且能在極短的時間內(幾十微秒內)完成電壓的調整。目前,國內外有關異構分布式系統(tǒng)環(huán)境下的節(jié)能調度方法主要有美國辛辛那提大學的D. P. Agrawal等人在異構系統(tǒng)中提出了一種基于任務復制的調度算法(TDS),該算法盡可能地復制任務前驅以改進系統(tǒng)性能。接著,又提出了一種基于異構網絡的調度算法(TANH),該算法在TDS算法的基礎上進行了改進以進一步完善系統(tǒng)性能。
基于任務復制的調度方法就是通過復制某個或某些任務到不同處理機上,消除具有約束關系的任務間的通信開銷,從而減少整個任務調度時間長度。該方法可以有效地降低任務調度長度,節(jié)省通信能耗,但同時也會增加復制任務的計算能耗,因此在節(jié)能調度中
需慎重考慮。美國奧本大學的宗子良等人提出了一種基于任務復制的節(jié)能調度算法,該算法提出了一個閾值來控制任務復制,即選擇性地復制任務最佳前驅來平衡系統(tǒng)性能和能耗兩方面。山東大學的龔斌等人提出了一種將聚簇調度方法和任務復制調度方法有效結合起來的節(jié)能方法,并利用動態(tài)功耗管理(DPM)技術來節(jié)省處理器空閑能耗。悉尼大學的Lee提出了一種基于動態(tài)電壓調節(jié)(DVS)技術的啟發(fā)式調度方法,該方法在任務調度過程中同時考慮性能和處理器能耗兩方面,提出了一個相對優(yōu)先級(RS) 作為評價指標來確定任務調度處理器以及在該處理器上的執(zhí)行電壓。云南大學的康雁在異構分布式系統(tǒng)上提出了一種節(jié)能方法,該方法首先利用禁忌(Tabu)策略來獲取空閑時間, 然后利用動態(tài)電壓調節(jié)(DVS)技術降低當前任務在處理器上的電壓以節(jié)省CPU能耗。美國佛羅里達大學的Kang等人提出了一種基于動態(tài)電壓調節(jié)(DVS)技術的調度策略,通過有效分配任務空閑時間來合理調整處理器電壓,從而最小化處理器能耗。綜上所述,以往的調度方法大部分針對性能或能耗的某一部分(系統(tǒng)能耗包括處理器能耗和網絡能耗兩部分)進行了改進或優(yōu)化。存在的不足之處有①有的方法只考慮性能而完全忽略能耗;②有些基于任務復制的節(jié)能調度方法利用閾值對任務復制進行控制,但所給定的閾值是任意設置的,不能根據并行任務和系統(tǒng)環(huán)境自適應調節(jié),導致調度結果不穩(wěn)定;③有的方法雖然既考慮了性能又考慮了處理器能耗,但忽略了網絡通信能耗。
發(fā)明內容
本發(fā)明的目的是提供一種異構分布式系統(tǒng)中基于自適應閾值的節(jié)能調度方法,該方法將基于自適應閾值的任務復制調度方法與動態(tài)電壓調節(jié)(DVS)技術結合起來,在滿足系統(tǒng)性能要求的前提下,可以有效地節(jié)省能耗。本發(fā)明的技術方案包括以下步驟一、首先讀取并行任務有向無環(huán)圖DAG文件。二、獲取初始任務調度序列。對于并行任務集V,共有η= V個任務,從出口任務Vn開始,計算每個任務的優(yōu)先級直至開始任務V1結束。然后根據任務優(yōu)先級大小升序排列,獲取初始任務調度序列。三、獲取最佳閾值。首先,從初始任務調度序列的第一個任務開始遍歷所有任務, 計算復制當前任務Vi的最佳前驅(FP(Vi))所增加的能耗11101~擾1^印7(等于??(\)的計算能耗減去它與Vi之間的通信能耗),取其中的最小值和最大值分別作為最小閾值min_ threshold和最大閾值max_threshold。然后,利用本專利所提出的調度方法求閾值分別為max_threshold和min_thresh0ld-l時的任務調度長度即為最小調度長度和最大調度長度。最后,指定一個能夠滿足用戶性能要求的調度長度,從miruthreshold-l開始遍歷所有閾值,并利用調度方法求當前閾值下任務調度長度,直到所求得的調度長度小于指定調度長度才結束遍歷,當前閾值即為最佳閾值。四、任務分組。從初始任務調度序列的第一個任務開始,執(zhí)行深度優(yōu)先搜索直到開始任務結束。任務搜索過程中,如果當前任務Vi的最佳前驅(FP(Vi))未分組,則將其分配給當前任務所在的分組,并標記為已分配,否則對是否復制FP (Vi)進行。如果復制FP (Vi), 則會增加復制任務FP (Vi)的計算能耗,減少任務調度長度和FP (Vi)與Vi之間的通信能耗。 假設減少的時間為lesstime (等于減少的調度長度),最終增加的能耗為moreenergy (等于 FP(Vi)的計算能耗減去它與Vi之間的通信能耗),倘若Iesstime > 0,而且moreenergy小于等于最佳閾值,則將復制任務FP (Vi)添加到當前任務Vi所在的分組,否則退出當前分組并選取初始任務調度序列中的第一個未分組任務進行下一個分組。五、任務映射。從第一個分組開始,計算各分組在所有未被占用的處理器上能耗, 將當前分組映射到能耗最小的處理器上,并標記該處理器已被占用,如此循環(huán)下去直到所有分組全部被分配出去。六、處理器電壓調節(jié)。利用任務之間的依賴關系所產生的空閑時間,確定任務在調度處理器上各個電壓下的執(zhí)行時間,使得產生的計算能耗最小,然后在任務執(zhí)行過程中動態(tài)調整處理器電壓。本發(fā)明的特點是針對異構分布式系統(tǒng)中的能量優(yōu)化問題,將基于自適應閾值的任務復制策略和動態(tài)電壓調節(jié)(DVQ技術結合起來,在滿足系統(tǒng)性能要求的同時優(yōu)化系統(tǒng)能耗。首先,本發(fā)明中基于自適應閾值的任務復制策略可以根據并行任務和系統(tǒng)環(huán)境(主要包括系統(tǒng)所提供的處理器和網絡參數)動態(tài)獲取一個最佳閾值,提高了系統(tǒng)的靈活性;然后利用該閾值對控制任務復制,即選擇性地復制任務的最佳前驅來平衡系統(tǒng)性能和能耗以獲取近似最優(yōu)分組,提高了系統(tǒng)的穩(wěn)定性;最后,將各分組調度到未被占用的且能耗最小的處理器上,該處理器根據任務之間的依賴關系所產生的空閑時間,利用動態(tài)電壓調節(jié)(DVS) 技術動態(tài)調整處理器電壓以進一步節(jié)省處理器能耗。
附圖為本發(fā)明流程框圖。
具體實施例方式下面結合附圖對本發(fā)明作進一步的詳細描述。并行任務用戶提交的任務用有向無環(huán)圖DAG表示,定義為G(V,E)。其中V= (V1, v2,L,vn)表示包涵η個任務的任務集。對于V中的每個任務,任務Vi在處理器?」上的執(zhí)行時間為tu,其中最大執(zhí)行時間記為 ;,t;表示任務Vi在被調度處理器上的執(zhí)行時間。為了方便闡述,這里分別用IVnVyKjJ和{fpf^LfJ表示各個任務所在處理器的電壓和頻率集。特別地,當任務Vi存在空閑時間時,可以利用動態(tài)電壓調節(jié)(DVS)技術調節(jié)任務所在處理器上的執(zhí)行電壓,任務在電壓Vk下的執(zhí)行時間記為Tik。另外,對于任務Vi,任務計算周期Cci為一定值,與處理器電壓無關。E為消息集,eu= (Vi5Vj) GE表示任務\到任務、傳遞的消息,表示傳遞消息所發(fā)費的通信時間。此外,我們分別用SUcc(Vi)和 Pred(Vi)表示任務Vi的后繼任務集合和前驅任務集合。系統(tǒng)資源一個異構分布式系統(tǒng)由許多可以具有不同處理能力的處理器節(jié)點組成,記為P= {ρι,ρ2,K,pm},這些節(jié)點通過高速網絡Link相互連接起來。系統(tǒng)中的所有處理器均支持動態(tài)電壓調節(jié)(DVS)技術,且每個處理器均擁有h個按從大到小順序排列的電壓值,記為IVil, Vi2,K,ViJ,對應的頻率值記為{。,。,!(,、丨,其中1彡i彡η。我們可以用一個nXm的二維矩陣X來表示η個任務映射到m個異構處理器的調度過程。如果任務 Vi調度到處理器P」,則Xij = 1,否則Xij = 0,其中Xij e X。
具體實施方式
按照以下步驟進行。一、讀并行任務有向無環(huán)圖DAG文件。二、獲取初始任務調度序列。對于并行任務集V,共有η= V個任務,從出口任務Vn開始,計算每個任務的優(yōu)先級直到開始任務V1結束。然后根據任務優(yōu)先級大小升序排列,獲取初始任務調度序列。其中,任務Vi的優(yōu)先級bottom(Vi)定義如公式(1)所示。
權利要求
1. 一種異構分布式系統(tǒng)中基于自適應閾值的節(jié)能調度方法,其特征在于包括以下步驟一、首先讀取并行任務有向無環(huán)圖DAG文件;二、獲取初始任務調度序列;對于并行任務集V,共有n=|V|個任務,從出口任務νη開始,計算每個任務的優(yōu)先級直至開始任務V1結束;然后根據任務優(yōu)先級大小升序排列,獲取初始任務調度序列;三、獲取最佳閾值;首先,從初始任務調度序列的第一個任務開始遍歷所有任務,計算復制當前任務Vi的最佳前驅(FP(Vi))所增加的能耗11101^1^印7(等于??(\)的計算能耗減去它與Vi之間的通信能耗),取其中的最小值和最大值分別作為最小閾值min_ threshold和最大閾值max_threshold ;然后,利用本專利所提出的調度方法求閾值分別為 max_threshold和min_thresh0ld-l時的任務調度長度即為最小調度長度和最大調度長度;最后,指定一個能夠滿足用戶性能要求的調度長度,從miruthreshold-l開始遍歷所有閾值,并利用調度方法求當前閾值下任務調度長度,直到所求得的調度長度小于指定調度長度才結束遍歷,當前閾值即為最佳閾值;四、任務分組;從初始任務調度序列的第一個任務開始,執(zhí)行深度優(yōu)先搜索直到開始任務結束;任務搜索過程中,如果當前任務Vi的最佳前驅(FP(Vi))未分組,則將其分配給當前任務所在的分組,并標記為已分配,否則對是否復制FP (Vi)進行;如果復制FP (Vi),則會增加復制任務FP(Vi)的計算能耗,減少任務調度長度和FP(Vi)與Vi之間的通信能耗;假設減少的時間為lesstime (等于減少的調度長度),最終增加的能耗為moreenergy (等于FP (Vi) 的計算能耗減去它與Vi之間的通信能耗),倘若Iesstime > 0,而且moreenergy小于等于最佳閾值,則將復制任務FP (Vi)添加到當前任務Vi所在的分組,否則退出當前分組并選取初始任務調度序列中的第一個未分組任務進行下一個分組;五、任務映射;從第一個分組開始,計算各分組在所有未被占用的處理器上能耗,將當前分組映射到能耗最小的處理器上,并標記該處理器已被占用,如此循環(huán)下去直到所有分組全部被分配出去;六、處理器電壓調節(jié);利用任務之間的依賴關系所產生的空閑時間,確定任務在調度處理器上各個電壓下的執(zhí)行時間,使得產生的計算能耗最小,然后在任務執(zhí)行過程中動態(tài)調整處理器電壓。
全文摘要
本發(fā)明涉及一種支持異構分布式系統(tǒng)環(huán)境中基于自適應閾值的節(jié)能調度方法,屬于異構分布式系統(tǒng)并行任務調度技術領域。本發(fā)明的具體方法是讀取并行任務有向無環(huán)圖(DAG)文件;獲取初始任務調度序列;獲取最佳閾值根據并行任務和系統(tǒng)環(huán)境動態(tài)獲取一個最佳閾值;任務分組利用最佳閾值對任務復制進行控制,即選擇性地復制任務的最佳前驅來平衡系統(tǒng)性能和能耗以獲取近似最優(yōu)分組;任務映射將各分組調度到未被分配且能耗最小的處理器上;處理器電壓調節(jié)利用任務空閑時間動態(tài)調整處理器電壓以節(jié)省處理器能耗。本發(fā)明綜合考慮了系統(tǒng)性能和能耗這兩方面的要求,方法中的最佳閾值可以自適應并行任務和系統(tǒng)環(huán)境,利用最佳閾值控制任務復制以權衡系統(tǒng)性能和能耗,使得最終調度結果在滿足系統(tǒng)性能要求的前提下盡量節(jié)省能耗。
文檔編號G06F1/32GK102360246SQ201110312108
公開日2012年2月22日 申請日期2011年10月14日 優(yōu)先權日2011年10月14日
發(fā)明者劉偉, 尹行, 杜薇, 段玉光 申請人:武漢理工大學