專利名稱:一種基于預(yù)算功率指導(dǎo)的高能效gpu集群系統(tǒng)調(diào)度算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及GPU集群系統(tǒng)調(diào)度算法,特別涉及一種基于預(yù)算功率指導(dǎo)的高能效GPU集群系統(tǒng)調(diào)度算法。
背景技術(shù):
所謂GPU集群,就是采用GPU (Graphics Processing Unit,圖形處理單元)作為加速器的高性能計算集群。GPU的計算能力很強,同時具有易于部署,成本低、通用性強等優(yōu)點。較為典型的GPU集群比如我國研制的“天河一號A”以及“星云”超級計算機。GPU集群 一般包括成千上萬的同構(gòu)的計算結(jié)點,每個結(jié)點中又會配置多個CPU處理器和多個GPU處理器。由于GPU集群一旦正式投入使用,至少要連續(xù)運行幾年甚至更長的時間,而任務(wù)調(diào)度是伴隨超級計算機整個生命周期必不可少的系統(tǒng)功能,因此調(diào)度算法的優(yōu)劣對于超級計算機長期與整體能耗的影響至關(guān)重要,因此高能效調(diào)度算法的研究對于實現(xiàn)GPU集群的長期有效節(jié)能至關(guān)重要。GPU集群的計算能力在以指數(shù)形式快速增長,但隨之而來的問題,是GPU集群的能耗開銷也越來越大。例如2010年11月世界超級計算機排行榜T0P500上性能位居榜首的我國“天河一號A”超級計算機滿負荷運行的總功耗達到了 4. 04兆瓦,24小時滿負荷工作耗電就接近10萬千瓦時,這帶來了電力供應(yīng)、經(jīng)費負擔(dān)、配套設(shè)施保障、環(huán)境保護等諸多問題。為了有效降低系統(tǒng)能耗,除了在硬件上提供必需的節(jié)能手段外,還必須重新研制新的調(diào)度算法,它可以對GPU集群的任務(wù)做出合理的安排,并充分利用底層的硬件節(jié)能措施來實現(xiàn)大幅度的能量節(jié)省。
發(fā)明內(nèi)容
為了克服上述現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種基于預(yù)算功率指導(dǎo)的高能效GPU集群系統(tǒng)調(diào)度算法,可以有效的提高GPU集群系統(tǒng)的能量效率,從而實現(xiàn)在長期來看可以顯著節(jié)能的效果。為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是一種基于預(yù)算功率指導(dǎo)的高能效GPU集群系統(tǒng)調(diào)度算法,包括如下步驟步驟一,把所有待調(diào)度的任務(wù)根據(jù)其組成分解為基本任務(wù),然后把所有的基本任務(wù)劃分為多個獨立的任務(wù)簇,一個任務(wù)簇用一個有向無環(huán)圖(DAG)來表不;步驟二,根據(jù)所述任務(wù)簇生成虛擬結(jié)點,形成所述任務(wù)簇和虛擬結(jié)點之間一對一的映射關(guān)系,為任務(wù)選取合適的處理器做準備,所述虛擬結(jié)點是由多個虛擬CPU和多個虛擬GPU構(gòu)成,它表述了執(zhí)行該任務(wù)簇的理想配置環(huán)境,其具體的配置和處理器個數(shù)由任務(wù)簇DAG圖的并行度和計算量來決定;首先,計算出DAG圖的關(guān)鍵路徑,將關(guān)鍵路徑上的任務(wù)從DAG中去除,然后從剩下的任務(wù)中再生成一條最長的路徑,去除該路徑之后,接著從剩下的任務(wù)中再生成路徑,如此反復(fù)直至無任務(wù)剩余,記錄總共生成路徑的條數(shù),這就是該DAG的最大可能并行度,即所需的處理器的個數(shù);
步驟三,將所述虛擬結(jié)點向物理結(jié)點進行多對多的映射,滿足為任務(wù)簇中任務(wù)動態(tài)的分配合適的處理器以供其執(zhí)行,在映射的過程中,物理結(jié)點要能夠滿足虛擬結(jié)點的要求,所述物理結(jié)點包括物理GPU與物理CPU。所述虛擬CPU向物理CPU的映射是一對一的映射;所述虛擬GPU向物理GPU的映
射是一對一的映射。對于一個給定的獨立任務(wù)簇,首先為它生成一個虛擬結(jié)點,然后把該任務(wù)簇中的基本任務(wù)調(diào)度到虛擬結(jié)點的虛擬CPU與虛擬GPU上,調(diào)度方案是以執(zhí)行時間最小化為目標而得到的。 所述虛擬結(jié)點向物理結(jié)點的映射過程是首先根據(jù)虛擬結(jié)點上任務(wù)簇的截止時間對虛擬結(jié)點進行排序,然后根據(jù)截止時間從早到晚的順序逐次把虛擬結(jié)點對應(yīng)的任務(wù)調(diào)度到物理結(jié)點上。當(dāng)完成一次虛擬結(jié)點組向不同物理結(jié)點的映射后,根據(jù)當(dāng)前的調(diào)度方案估算GPU集群系統(tǒng)的實際功率要求,如果該功率與設(shè)定的預(yù)算功率在誤差允許的范圍內(nèi)近似相等,則不需要進行節(jié)能調(diào)整,而是直接轉(zhuǎn)去執(zhí)行具有下一個較晚截止時間的虛擬結(jié)點組向物理結(jié)點的映射;如果計算出來的實際功率高于設(shè)定的預(yù)算功率,就運用相應(yīng)的節(jié)能措施,包括DRS能耗控制策略、DAG圖調(diào)度策略、DVFS節(jié)能策略以及GPU子任務(wù)的β -migration節(jié)能策略等,把GPU集群系統(tǒng)需要的功率調(diào)整到與預(yù)算功率在誤差允許的范圍內(nèi)近似相等的水平或者直到不能再進一步降低功率為止;如果所述各種節(jié)能措施全部應(yīng)用后最終系統(tǒng)的功率需求還是高于預(yù)算功率甚至是安全功率的要求,則說明當(dāng)時系統(tǒng)嚴重超載,通過推遲部分任務(wù)的執(zhí)行與拒絕掉部分任務(wù)來降低當(dāng)前系統(tǒng)的負載。綜上所述,本發(fā)明在分析和抽象GPU集群的系統(tǒng)模型、能耗模型、任務(wù)模型和調(diào)度機制的基礎(chǔ)上,提出GPU集群的調(diào)度模型;基于該調(diào)度模型,本發(fā)明設(shè)計了可以在滿足給定任務(wù)QoS(Quality of Service)要求和系統(tǒng)約束的前提下,以預(yù)算功率為指導(dǎo),可以有效提高GPU集群能量效率的調(diào)度算法。其中本發(fā)明中的GPU集群系統(tǒng)的調(diào)度模型可表示為如下的三元組SchedulingModel=<TaskSet, GPUCluster, Sch>TaskSet表示在較長的一段時間內(nèi)所有GPU集群用戶提交的任務(wù)的集合。GPUCluster表示用于執(zhí)行該任務(wù)集合的GPU集群;用給定的調(diào)度算法,以在線方式(即在調(diào)度時刻不知道后續(xù)任務(wù)的情況)依次對已經(jīng)到達的任務(wù)進行調(diào)度,直到TaskSet中所有任務(wù)被調(diào)度完成,所有這些在線調(diào)度得到的調(diào)度方案的集合,記為TaskSet在GPUCluster上的調(diào)度方案Sch。本發(fā)明重點考慮計算密集型的任務(wù),因為這種類型的任務(wù)消耗處理器的能量最多。本發(fā)明中的GPU集群一般由很多計算結(jié)點構(gòu)成,每個計算結(jié)點多采用同構(gòu)的硬件配置。對于一個由k個結(jié)點組成的GPU集群可以形式化的表示為如下集合形式GPUCluster (N1, N2, N3, , Nj其中k為計算結(jié)點的個數(shù),Ni表示第i個具體的計算結(jié)點。對于GPU集群的每一個計算結(jié)點Nh(l彡h彡k),假設(shè)它由η個CPU和m個GPU組成。這樣在一個結(jié)點Nh內(nèi)部,可以把其CPU計算單元抽象為一個集合{Cu,Ch,2,Ch,3- . .,Ch,J,把其GPU計算單元抽象為一個集合{Gi^Gh^Gh^'GhJ。與現(xiàn)有技術(shù)相比,本發(fā)明關(guān)注的是從長期看,完成給定任務(wù)所消耗的總能量要盡量少,而不是把系統(tǒng)一次調(diào)度所消耗的能量多少作為評價指標。所謂能量效率是指GPU集群系統(tǒng)在運行一段的時間內(nèi),單位能耗下完成的任務(wù)工作量。由于計算密集型任務(wù)是GPU集群的一種典型負載,運行這類任務(wù)時GPU集群本身大部分的能量是被處理器消耗的(內(nèi)存、通信與磁盤部分能耗的比重相對較小),因此本發(fā)明針對計算密集型任務(wù)在GPU集群上的調(diào)度,重點研究可以有效提高GPU集群系統(tǒng)的能量效率的方法。本發(fā)明分析并抽象典型GPU集群的系統(tǒng)模型、任務(wù)模型和能耗模型,據(jù)此研究并 設(shè)計開發(fā)基于預(yù)算功率指導(dǎo)的可以有效提高系統(tǒng)能量效率的任務(wù)調(diào)度模型與算法,與已有的以最小化一次調(diào)度的執(zhí)行時間或者一次調(diào)度的能耗為目標的調(diào)度算法相比,能夠更有效地利用GPU集群系統(tǒng)的特點,達到可以長期顯著提高GPU集群能量使用效率的目標,大幅度降低其能量開銷。本發(fā)明的持續(xù)高能效調(diào)度算法可以達到既能夠滿足任務(wù)截止時間與完成率的要求,又能夠達到長期最大限度降低系統(tǒng)整體能量開銷的效果。在具體的實現(xiàn)上,本發(fā)明首先提出并設(shè)計預(yù)算功率,其特點是它充分考慮了較長一段時間內(nèi)全部任務(wù)而不是部分任務(wù)的要求,因此以它為指導(dǎo)可以取得持續(xù)、較高的節(jié)能效果。能量效率的高低是用系統(tǒng)的實際運行功率和預(yù)算功率的接近程度來表示的。二者越接近則表示能量效率越高。在設(shè)定了系統(tǒng)的預(yù)算功率后,本發(fā)明的基于預(yù)算功率指導(dǎo)的高能效調(diào)度算法,可以盡可能讓系統(tǒng)的運行功率去接近預(yù)算功率。而已有的以最小化能耗為目標的調(diào)度算法只是考慮本次調(diào)度涉及到的任務(wù)的需求,因此只能給出局部優(yōu)化的調(diào)度方案,長期、全局的優(yōu)化效果并不好。而本發(fā)明的以預(yù)算功率指導(dǎo)的調(diào)度算法因為綜合考慮了較長一段時間內(nèi)所有任務(wù)的需求,是在全局信息指導(dǎo)下的優(yōu)化,因此長期的總的節(jié)能效果比較理想。本發(fā)明可以為GPU集群系統(tǒng)的發(fā)展和大規(guī)模部署應(yīng)用提供基礎(chǔ)性的支持。同時該成果具有很強的應(yīng)用前景,可應(yīng)用在國內(nèi)天河、曙光、浪潮等基于GPU集群的超級計算機上,為中國節(jié)能型GPU集群的推廣普及做出貢獻。
圖I為從不同的維度對不同節(jié)能策略進行分類。圖2為層次化的任務(wù)調(diào)度過程。圖3為層次化的任務(wù)映射過程。圖4為對就緒任務(wù)隊列中的基本任務(wù)分簇后的結(jié)果示意圖。圖5為用戶任務(wù)生成獨立任務(wù)簇以及獨立任務(wù)簇向虛擬結(jié)點映射示意圖。
具體實施例方式下面結(jié)合附圖和實施例對本發(fā)明做進一步詳細說明。本發(fā)明提出的基于預(yù)算功率指導(dǎo)的高能效調(diào)度算法綜合運用了不同層次、不同粒度的四種節(jié)能策略,采用層次化的調(diào)度方法并且通過對基于預(yù)算功率指導(dǎo)的系統(tǒng)功率進行調(diào)整,從而實現(xiàn)最終的高能效的長期節(jié)能效果。
為了實現(xiàn)高能效的調(diào)度,本發(fā)明采用了四種有助于減少系統(tǒng)能量開銷的節(jié)能策略,分別是DRS節(jié)能調(diào)度策略、DVFS節(jié)能調(diào)度策略、基于關(guān)鍵路徑的DAG任務(wù)節(jié)能調(diào)度策略和β-migration節(jié)能調(diào)度策略。本發(fā)明中根據(jù)預(yù)算功率的要求,對這些不同層次、不同粒度的節(jié)能策略進行優(yōu)化組合,達到了盡可能接近預(yù)算功率的方式執(zhí)行任務(wù)的目標。根據(jù)這些節(jié)能策略的特點,本發(fā)明進一步將他們分成兩個不同的維度,分別是細粒度和粗粒度維度以及硬件層面和軟件層面,如圖I所示。從這個分類可以更加清楚的知道每一種節(jié)能策略的特點(比如DAG圖調(diào)度節(jié)能策略是屬于粗粒度模型的而且是軟件層面的節(jié)能策略)。這四種節(jié)能策略具體解釋如下DRS(Dynamic Resource Scaling)節(jié)能調(diào)度策略的主要思想是通過盡量把運行的任務(wù)集中調(diào)度到少量的結(jié)點上從而可以讓其它的結(jié)點空閑下來進入睡眠狀態(tài)以節(jié)省系統(tǒng)的能量開銷。DVFS(Dynamic Voltage&Frequency Scaling)節(jié)能調(diào)度策略的基本想法是通過讓 處理器運行在不同的速度和相應(yīng)的最佳電壓下從而在完成任務(wù)所需要的時間和消耗的能量二者之間進行平衡。以更高的速度和電壓運行任務(wù)可以較快地完成任務(wù),但是需要消耗更多的能量;以較低的速度和電壓運行任務(wù)可以以較少的能量開銷完成任務(wù),但是需要更長的時間?;陉P(guān)鍵路徑的DAG節(jié)能調(diào)度策略是指在本研究將所有的任務(wù)都統(tǒng)一表不為一個有向無環(huán)圖(Directed Acyclic Graph,DAG),因此可以通過計算DAG圖的關(guān)鍵路徑(通常按照最快的執(zhí)行速度計算),對于那些在非關(guān)鍵路徑上的任務(wù),可以利用DVFS等手段來降低其能量開銷。這種方法一方面不會延長任務(wù)的最早完成時間(即關(guān)鍵路徑的長度),同時可以降低任務(wù)執(zhí)行過程中的能量效率,這是最典型的一種DAG圖調(diào)度任務(wù)節(jié)能手段。β -migration節(jié)能調(diào)度策略的基本想法在一個任務(wù)的GPU子任務(wù)部分比較繁重而CPU子任務(wù)部分很輕的情況下,可以選擇一定比例(β部分)的GPU子任務(wù),把它轉(zhuǎn)移到CPU上執(zhí)行。通過計算合理的β值,就可以使得CPU與GPU同時完成各自的任務(wù)。這樣一方面可以避免因CPU空閑而浪費能量,另一方面因CPU分擔(dān)了部分GPU的工作而加快了整個任務(wù)的進度。在GPU集群上運行的任務(wù)規(guī)模一般都較大;GPU集群系統(tǒng)計算單元多,組成異構(gòu)系統(tǒng);為了實現(xiàn)有效節(jié)能,調(diào)度算法必須與各種不同粒度與層次的節(jié)能策略有機結(jié)合,才可能取得預(yù)期的成果。為此,本發(fā)明中的調(diào)度算法采用層次化的思想,即根據(jù)任務(wù)與調(diào)度系統(tǒng)的特點把調(diào)度算法的設(shè)計問題分成多個不同層次的相對獨立的子問題,通過分別給出解決這些子問題的方法與策略,最后再把這些策略綜合起來形成一個完整的層次化調(diào)度算法。如圖2所示,本發(fā)明中高能效GPU集群的調(diào)度算法劃分為三個層次,最上面的是任務(wù)層,主要目的是把所有待調(diào)度的任務(wù)劃分為多個相對獨立的任務(wù)簇,一個任務(wù)簇用一個有向無環(huán)圖(DirectedAcyclic Graph,DAG)來表示。中間一層是任務(wù)簇向虛擬結(jié)點的映射,這是一個一對一的映射,它包括根據(jù)任務(wù)簇的并行度來決定虛擬結(jié)點的配置以及按照虛擬結(jié)點的最大可能執(zhí)行速度完成該DAG任務(wù)在虛擬結(jié)點上的調(diào)度兩大步。虛擬結(jié)點表述了執(zhí)行該任務(wù)簇的一個理想的配置環(huán)境,是一個為簡化問題而生成的虛擬模型,其具體的配置和處理器個數(shù)由任務(wù)簇DAG圖的并行度和計算量來決定。最下面的一層是虛擬結(jié)點向物理結(jié)點的映射。這是一個多對多的映射。即一個虛擬結(jié)點上的任務(wù)可以映射到多個不同的物理結(jié)點上,同時,一個物理結(jié)點也可以接受來自多個不同虛擬結(jié)點的任務(wù)。在映射的過程中,除了物理結(jié)點要能夠滿足虛擬結(jié)點的要求之外,要充分運用DRS節(jié)能策略來盡量把虛擬結(jié)點上的任務(wù)映射到少量的物理結(jié)點上,這樣在輕載的時候其它物理結(jié)點就有機會進入睡眠(sleep)狀態(tài)來節(jié)能。本發(fā)明中的調(diào)度算法三個層次之間的映射關(guān)系如圖3所示。對于GPU集群就緒隊列中的任務(wù),為了快速、有效地完成這些任務(wù)的調(diào)度,本發(fā)明的調(diào)度方法是首先是把這些任務(wù)根據(jù)其組成分解為基本任務(wù),然后把所有的基本任務(wù)劃分為多個獨立的任務(wù)簇,接下來再完成對所有獨立任務(wù)簇的調(diào)度。同一個簇中的基本任務(wù)之間具有一定的內(nèi)在聯(lián)系,因此把它們作為一個整體進行調(diào)度可以進行有效的優(yōu)化。而不同簇之間的基本任務(wù)是相對獨立的。本發(fā)明提出三條通過對獨立任務(wù)聚類形成簇的原則(I)具有內(nèi)在依賴關(guān)系的基本任務(wù)應(yīng)該劃分到同一個簇中;(2)小的但是截止時間相近的基本任務(wù)可以合并到同一個簇中;(3)不同簇的負載要盡 量接近。本發(fā)明用一個DAG來表示一個獨立任務(wù)簇的內(nèi)部結(jié)構(gòu)。如果一個獨立任務(wù)簇中含有獨立任務(wù)或者多個DAG任務(wù),本發(fā)明引入一個虛擬任務(wù)結(jié)點(Dummy task)作為所有獨立任務(wù)與DAG任務(wù)的根結(jié)點,當(dāng)然,這個結(jié)點是沒有計算量的。經(jīng)過這樣的處理后,就可以認為一個獨立任務(wù)簇就是一顆樹。從整體上來看,一段時間內(nèi)的所有的就緒任務(wù)形成一個森林,其中每一棵樹就是一個獨立任務(wù)簇。如圖4所示,這樣可以統(tǒng)一處理,簡化整個調(diào)度算法的實現(xiàn)。對于一個給定的獨立任務(wù)簇,本發(fā)明首先為它生成一個虛擬結(jié)點,然后把該簇中的基本任務(wù)映射到虛擬結(jié)點的虛擬CPU與虛擬GPU上并完成相應(yīng)的調(diào)度。具體地說,本發(fā)明通過分析簇內(nèi)部結(jié)構(gòu)的特點,得到其最大并行度,這個并行度可以決定相應(yīng)虛擬結(jié)點中CPU-GPU對的個數(shù)(沒有GPU任務(wù)的簇可以只考慮CPU的個數(shù))。對于給定的任務(wù)簇,本發(fā)明首先以執(zhí)行時間最小化為目標來得到該簇在其對應(yīng)的虛擬結(jié)點上的調(diào)度方案。這個調(diào)度方案的目的是首先可以盡量在最短的時間內(nèi)完成給定的任務(wù),以便于系統(tǒng)可以完成更多的工作,從而滿足調(diào)度的基本約束條件。圖5給出了將基本任務(wù)形成獨立任務(wù)簇以及獨立任務(wù)簇在虛擬結(jié)點上映射與調(diào)度的流程示意圖。虛擬結(jié)點向物理結(jié)點的映射是一個多對多的映射。即一個虛擬結(jié)點可以映射到多個物理結(jié)點上,同時多個虛擬結(jié)點也可以映射到一個物理結(jié)點上,但是虛擬結(jié)點內(nèi)的虛擬CPU與虛擬GPU向物理CPU和物理GPU的映射是一對一的映射。本發(fā)明不是一次把所有的虛擬結(jié)點都映射到物理結(jié)點上,而是首先根據(jù)虛擬結(jié)點上任務(wù)簇的截止時間對虛擬結(jié)點進行排序,首先將截止時間相近而且靠前的那些虛擬結(jié)點映射到物理結(jié)點上,具體的映射方法與指導(dǎo)原則如下(I)盡量把虛擬結(jié)點映射到少量的物理結(jié)點上,這樣便于沒有任務(wù)的物理結(jié)點進入休眠狀態(tài)進行節(jié)能;(2)盡量把一個虛擬結(jié)點上的任務(wù)映射到相同的物理結(jié)點上,這樣可以盡量避免跨結(jié)點的通信;(3)物理結(jié)點的計算能力必須滿足虛擬結(jié)點上分配的任務(wù)的要求,物理結(jié)點可用的時間也必須滿足虛擬結(jié)點上對任務(wù)執(zhí)行時間的要求。當(dāng)完成一次虛擬結(jié)點組向不同物理結(jié)點的映射后,本發(fā)明根據(jù)當(dāng)前的調(diào)度方案計算GPU集群系統(tǒng)的實際功率要求。如果該功率非常接近設(shè)定的預(yù)算功率,就不需要進行節(jié)能調(diào)整,而是直接轉(zhuǎn)去執(zhí)行具有較晚截止時間的虛擬結(jié)點組向物理結(jié)點的映射。如果計算出來的實際功率高于設(shè)定的預(yù)算功率,就綜合運用各種節(jié)能措施,把GPU集群系統(tǒng)需要的功率調(diào)整到與預(yù)算功率相近的水平或者直到不能再進一步降低功率為止。如果各種節(jié)能措施全部應(yīng)用后最終系統(tǒng)的功率需求還是高于預(yù)算功率甚至是安全功率的要求,這說明當(dāng)時系統(tǒng)嚴重超載,必須對任務(wù)進行調(diào)整??梢酝ㄟ^推遲部分任務(wù)的執(zhí)行與拒絕掉部分任務(wù)來降低當(dāng)前系統(tǒng)的負載。本發(fā)明用預(yù)算功率來作為GPU集群系統(tǒng)在一定任務(wù)負載下的理想運行功率的近似,為了評價系統(tǒng)運行時其實際功率與預(yù)算功率所消耗能量的匹配程度,本發(fā)明引入一個指標,即最優(yōu)能量近似度(OEAD, Optimal Energy Approximate Degree),它是理想功率消耗的能量與給定對比調(diào)度算法在實際功率下所消耗能量的比值,該值總是小于1,該值越接近I說明對比的調(diào)度算法越接近理想的能量消耗,該調(diào)度算法的能量效率就越高。OEAD除了可以用來比較不同算法在相同系統(tǒng)上的優(yōu)劣,還可以比較不同算法在不同系統(tǒng)上的優(yōu)劣。
基于預(yù)算功率指導(dǎo)的系統(tǒng)功率調(diào)整的主要目標是,采用合適的能量調(diào)整策略,以實現(xiàn)系統(tǒng)實際動態(tài)功率和預(yù)算功率盡可能匹配。 本發(fā)明把具體的功率調(diào)整分為兩大步首先是結(jié)點內(nèi)的功率調(diào)整,在結(jié)點內(nèi)功率調(diào)整后實際功率仍遠遠超出預(yù)算功率的情況下,就需要通過調(diào)整一些任務(wù)來滿足功率調(diào)整的要求。這樣就可以實現(xiàn)系統(tǒng)的運行任務(wù)所需要功率和預(yù)算功率盡可能匹配,系統(tǒng)的能量效率最高。
權(quán)利要求
1.一種基于預(yù)算功率指導(dǎo)的高能效GPU集群系統(tǒng)調(diào)度算法,其特征在于,包括如下步驟 步驟一,把所有待調(diào)度的任務(wù)根據(jù)其組成分解為基本任務(wù),然后把所有的基本任務(wù)劃分為多個獨立的任務(wù)簇,一個任務(wù)簇用一個有向無環(huán)圖(DAG)來表示; 步驟二,根據(jù)所述任務(wù)簇生成虛擬結(jié)點,形成所述任務(wù)簇和虛擬結(jié)點之間一對一的映射關(guān)系,為任務(wù)選取合適的處理器做準備,所述虛擬結(jié)點是由多個虛擬CPU和多個虛擬GPU構(gòu)成,它表述了執(zhí)行該任務(wù)簇的理想配置環(huán)境,其具體的配置和處理器個數(shù)由任務(wù)簇DAG圖的并行度和計算量來決定; 步驟三,將所述虛擬結(jié)點向物理結(jié)點進行多對多的映射,滿足為任務(wù)簇中任務(wù)動態(tài)的分配合適的處理器以供其執(zhí)行,在映射的過程中,物理結(jié)點要能夠滿足虛擬結(jié)點的要求,所述物理結(jié)點包括物理GPU與物理CPU。
2.根據(jù)權(quán)利要求I所述的調(diào)度算法,其特征在于,所述虛擬CPU向物理CPU的映射是一對一的映射;所述虛擬GPU向物理GPU的映射是一對一的映射。
3.根據(jù)權(quán)利要求I所述的調(diào)度算法,其特征在于,對于一個給定的獨立任務(wù)簇,首先為它生成一個虛擬結(jié)點,然后把該任務(wù)簇中的基本任務(wù)調(diào)度到虛擬結(jié)點的虛擬CPU與虛擬GTO上,調(diào)度方案是以執(zhí)行時間最小化為目標而得到的。
4.根據(jù)權(quán)利要求I所述的調(diào)度算法,其特征在于,所述虛擬結(jié)點向物理結(jié)點的映射過程是首先根據(jù)虛擬結(jié)點上任務(wù)簇的截止時間對虛擬結(jié)點進行排序,然后根據(jù)截止時間從早到晚的順序逐次把虛擬結(jié)點對應(yīng)的任務(wù)調(diào)度到物理結(jié)點上。
5.根據(jù)權(quán)利要求4所述的調(diào)度算法,其特征在于,當(dāng)完成一次虛擬結(jié)點組向不同物理結(jié)點的映射后,根據(jù)當(dāng)前的調(diào)度方案估算GPU集群系統(tǒng)的實際功率要求,如果該功率與設(shè)定的預(yù)算功率在誤差允許的范圍內(nèi)近似相等,則不需要進行節(jié)能調(diào)整,而是直接轉(zhuǎn)去執(zhí)行具有下一個較晚截止時間的虛擬結(jié)點組向物理結(jié)點的映射;如果計算出來的實際功率高于設(shè)定的預(yù)算功率,就運用相應(yīng)的節(jié)能措施,把GPU集群系統(tǒng)需要的功率設(shè)置到與預(yù)算功率在誤差允許的范圍內(nèi)近似相等的水平或者直到不能再進一步降低功率為止;如果所述各種節(jié)能措施全部應(yīng)用后最終系統(tǒng)的功率需求還是高于預(yù)算功率甚至是安全功率的要求,則說明當(dāng)時系統(tǒng)嚴重超載,通過推遲部分任務(wù)的執(zhí)行與拒絕掉部分任務(wù)來降低當(dāng)前系統(tǒng)的負載。
6.根據(jù)權(quán)利要求5所述的調(diào)度算法,其特征在于,所述各種節(jié)能措施包括 DRS(Dynamic Resource Scaling)節(jié)能調(diào)度策略,通過盡量把運行的任務(wù)集中調(diào)度到少量的結(jié)點上從而可以讓其它的結(jié)點空閑下來進入睡眠狀態(tài)以節(jié)省系統(tǒng)的能量開銷; DVFS(Dynamic Voltage&Frequency Scaling)節(jié)能調(diào)度策略,通過讓處理器運行在不同的速度和相應(yīng)的最佳電壓下從而在完成任務(wù)所需要的時間和消耗的能量二者之間進行平衡; DAG (Directed Acyclic Graph)節(jié)能調(diào)度策略,將所有的任務(wù)都統(tǒng)一表示為一個有向無環(huán)圖,通過計算DAG圖的關(guān)鍵路徑,該關(guān)鍵路徑按照最快的執(zhí)行速度來計算獲取,對于那些在非關(guān)鍵路徑上的任務(wù),利用節(jié)能調(diào)度策略來降低其能量開銷; β -migration節(jié)能調(diào)度策略的基本想法在一個任務(wù)的GPU子任務(wù)部分比較繁重而CPU子任務(wù)部分很輕的情況下,選擇一定比例(β部分)的GPU子任務(wù),把它轉(zhuǎn)移到CPU上執(zhí)行,通過計算合理的β值,就可使得CPU與GPU同時完成各自的任務(wù)。
7.根據(jù)權(quán)利要求I所述的調(diào)度算法,其特征在于,所述步驟一中將待調(diào)度的任務(wù)根據(jù)其組成分解為基本任務(wù)方法是指不考慮該調(diào)度任務(wù)的內(nèi)部數(shù)據(jù)依賴關(guān)系,而將待調(diào)度任務(wù)的一個個子任務(wù)看成基本任務(wù);基本任務(wù)劃分為獨立任務(wù)簇的方法是指按照數(shù)據(jù)依賴的原則以及任務(wù)截止時間相近的原則將基本任務(wù)再重新組合起來構(gòu)成一個獨立任務(wù)簇。
8.根據(jù)權(quán)利要求I所述的調(diào)度算法,其特征在于,所述步驟二中根據(jù)任務(wù)簇生成虛擬結(jié)點的方法是指根據(jù)該任務(wù)簇的內(nèi)部結(jié)構(gòu)和并行度來配置相應(yīng)的處理器從而構(gòu)成虛擬結(jié)點,首先,計算出DAG圖的關(guān)鍵路徑,將關(guān)鍵路徑上的任務(wù)從DAG中去除,然后從剩下的任務(wù)中再生成一條最長的路徑,去除該路徑之后,接著從剩下的任務(wù)中再生成路徑,如此反復(fù)直至無任務(wù)剩余,記錄總共生成路徑的條數(shù),這就是該DAG的最大可能并行度,即所需的處理器的個數(shù)。
全文摘要
一種基于預(yù)算功率指導(dǎo)的高能效GPU集群系統(tǒng)調(diào)度算法,首先把所有待調(diào)度的任務(wù)分解為基本任務(wù),把所有的基本任務(wù)劃分為多個獨立的任務(wù)簇;然后根據(jù)所述任務(wù)簇生成虛擬結(jié)點,形成所述任務(wù)簇和虛擬結(jié)點之間一對一的映射關(guān)系;最后將所述虛擬結(jié)點向物理結(jié)點進行多對多的映射,滿足為任務(wù)簇中任務(wù)動態(tài)的分配合適的處理器以供其執(zhí)行,本發(fā)明可以有效的提高GPU集群系統(tǒng)的能量效率,從而實現(xiàn)在長期來看可以顯著節(jié)能的效果。
文檔編號G06F9/50GK102819460SQ20121027969
公開日2012年12月12日 申請日期2012年8月7日 優(yōu)先權(quán)日2012年8月7日
發(fā)明者都志輝, 劉文杰, 劉淵, 楊全 申請人:清華大學(xué)