
本發(fā)明涉及GPU-CPU混合資源分配,具體地,涉及虛擬化云環(huán)境下GPU-CPU混合資源分配系統(tǒng)和方法。
背景技術(shù):
:當(dāng)前,隨著用于高性能并行處理的云計(jì)算技術(shù)不斷成熟,這種技術(shù)極大地提高了資源的利用率并且降低了客戶端的成本。這是一個(gè)簡(jiǎn)易有效的提升用戶體驗(yàn)與任務(wù)效率的方法。對(duì)于用戶而言,這個(gè)趨勢(shì)能夠通過(guò)使用智能手機(jī)等輕量級(jí)客戶端來(lái)在較少支出的前提下得到同等服務(wù)。對(duì)于服務(wù)提供商而言,用于高性能并行處理的云計(jì)算技術(shù)同樣能夠使他們使用同等設(shè)備支出提供更好服務(wù)??紤]所有或許會(huì)在虛擬化云環(huán)境下得到更好的運(yùn)行性能的應(yīng)用與服務(wù),其中大多數(shù)都具有異構(gòu)資源的混合需求。而對(duì)于CPU與GPU運(yùn)算資源的混合需求就是在這其中的一個(gè)典型例子。這種情況導(dǎo)致了在資源分配與調(diào)度上的許多困難。這些困難包括如何在有多種異構(gòu)資源需求的情況下定義每一個(gè)任務(wù)對(duì)于資源的使用量,如何在這種情況下度量某一種資源分配方案的公平性以及效率,還有如何設(shè)計(jì)真正實(shí)際可用的資源分配算法等。論及對(duì)于單種類型資源的分配與調(diào)度早已存在許多成熟的研究。其中關(guān)鍵性的一點(diǎn),即對(duì)于分配方案公平性的度量,也存在許多各種各樣的測(cè)度方式。但相比之下,對(duì)于多重類型的混合資源分配所進(jìn)行的研究就要少得多。實(shí)際上,最重要的就是如何在具有多重資源需求的情況下準(zhǔn)確評(píng)判其公平性。在這種情況下,每一個(gè)計(jì)算任務(wù)對(duì)于計(jì)算資源的需求將不再是一個(gè)單獨(dú)的標(biāo)量,而是一個(gè)向量,同時(shí),對(duì)于每一個(gè)計(jì)算任務(wù)的資源分配也是如此。因?yàn)橛?jì)算任務(wù)對(duì)于資源需求的異構(gòu)性,這些計(jì)算任務(wù)中的每一個(gè)所需求的不同計(jì)算資源之間并非是成比例的。這也就意味著不能簡(jiǎn)單地以其中一種資源的需求作為計(jì)算任務(wù)總體資源需求的代表來(lái)計(jì)算資源分配,而是需要特殊的方法將需求向量標(biāo)量化以計(jì)算其公平度。存在一種使用“主導(dǎo)資源份額(DominantResourceShare)”來(lái)進(jìn)行的資源分配公平性定義:主導(dǎo)資源公平性(DominantResourceFairness)。在此基礎(chǔ)上,建立了名為“主導(dǎo)份額公平”(FairnessonDominantShares)的FDS公平性評(píng)價(jià)函數(shù):fβ,λFDS=sgn(1-β)(Σj=1n(μjxjΣk=1nμkxk)1-β)1β(Σj=1nμjxj)λ]]>其中,表示FDS公平性評(píng)價(jià)函數(shù);β表示公平性參量;n表示工作任務(wù)總種數(shù);μj表示第j種工作任務(wù)的主導(dǎo)份額(DominantShare);xj表示第j種工作任務(wù)的任務(wù)數(shù)量;μk表示第k種工作任務(wù)的主導(dǎo)份額;xk表示第k種工作任務(wù)的任務(wù)數(shù)量;λ表示效率權(quán)重參量;sgn是符號(hào)函數(shù);另,使用Ci表示第i種資源的容量,Ri表示第i種資源的需求。然而,雖然可以通過(guò)上述FDS公平性評(píng)價(jià)函數(shù)建立對(duì)于資源最優(yōu)化分配的數(shù)學(xué)理論模型與問(wèn)題描述,以此可以比較簡(jiǎn)單的列出幾種方案來(lái)計(jì)算最優(yōu)資源分配方案,但我們?nèi)匀恍枰獙?shù)學(xué)上的理論建模轉(zhuǎn)化為實(shí)際可運(yùn)行的算法。事實(shí)上,此處的資源分配問(wèn)題,形成了一個(gè)典型的非線性規(guī)劃問(wèn)題。周期性的解算這樣高復(fù)雜度的問(wèn)題以求得資源分配值是極不可行的,因此我們亦需要建立一個(gè)有效算法以降低對(duì)于計(jì)算資源的額外消耗。對(duì)于云端游戲,當(dāng)前的解決方案仍然尚欠完善。所謂云端游戲,指的是將游戲的主體程序在云端托管,將其運(yùn)行時(shí)所需要進(jìn)行的大量圖形場(chǎng)景渲染計(jì)算以及后臺(tái)變化交互運(yùn)算等需要占用大量硬件資源的工作任務(wù)交由云端進(jìn)行執(zhí)行,然后在得到每一幀的渲染圖像之后,將這一系列圖像作為視頻,以流媒體的方式進(jìn)行壓縮與傳送,通過(guò)網(wǎng)絡(luò)由客戶端接收并還原。在這種情況下,客戶端部分的硬件負(fù)載僅僅需要承擔(dān)網(wǎng)絡(luò)流媒體視頻解壓播放的任務(wù),極大地減小了客戶端的運(yùn)算資源消耗,使得客戶端的硬件性能限制幾乎不會(huì)再對(duì)客戶體驗(yàn)產(chǎn)生影響。這正是一個(gè)CPU與GPU運(yùn)算資源混合需求的典型應(yīng)用場(chǎng)景。對(duì)于大多數(shù)游戲而言,均具有大量的場(chǎng)景繪制渲染,以及后臺(tái)的活動(dòng)、變化的計(jì)算任務(wù)。這也就意味著其基本上都會(huì)涉及到大量的CPU以及GPU資源的占用與消耗。同時(shí)對(duì)于不同的游戲而言,它們對(duì)于CPU與GPU這兩種資源分別的消耗一般來(lái)說(shuō)都是各不相同的,這涉及對(duì)于異構(gòu)混合資源分配的需求。另外,游戲在運(yùn)行過(guò)程中,對(duì)于兩種計(jì)算資源的需求一般來(lái)說(shuō)并不是穩(wěn)定的,而是不斷變化的。這意味著云端游戲的完善需要滿足其特殊需求的資源分配算法及其相應(yīng)的工作平臺(tái)系統(tǒng)。技術(shù)實(shí)現(xiàn)要素:針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種虛擬化云環(huán)境下GPU-CPU混合資源分配系統(tǒng)和方法。根據(jù)本發(fā)明提供的一種虛擬化云環(huán)境下GPU-CPU混合資源分配系統(tǒng),其特征在于,包括注入模塊、分配器;注入模塊負(fù)責(zé)設(shè)置鉤子,收集進(jìn)程運(yùn)行時(shí)數(shù)據(jù)并傳出數(shù)據(jù),接收來(lái)自分配器的資源分配目標(biāo)值,并通過(guò)睡眠方式限制進(jìn)程占用資源;分配器負(fù)責(zé)監(jiān)視進(jìn)程,執(zhí)行動(dòng)態(tài)鏈接庫(kù)注入,創(chuàng)建進(jìn)程間通信通道,接收并管理來(lái)自注入模塊的進(jìn)程運(yùn)行時(shí)數(shù)據(jù),調(diào)用資源分配算法得到資源分配目標(biāo)值,并將資源分配目標(biāo)值發(fā)送給注入模塊。優(yōu)選地,注入模塊收集進(jìn)程運(yùn)行時(shí)數(shù)據(jù),然后通過(guò)雙向管道,傳輸至分配器;分配器負(fù)責(zé)接收并匯總進(jìn)程運(yùn)行時(shí)數(shù)據(jù),并以一定時(shí)間間隔運(yùn)行資源分配算法迭代調(diào)度資源分配目標(biāo)值,并通過(guò)雙向管道將資源分配目標(biāo)值回傳至注入模塊;注入模塊根據(jù)資源分配目標(biāo)值,通過(guò)對(duì)FPS高于閾值的進(jìn)程強(qiáng)制睡眠,以控制運(yùn)行狀態(tài),并收集進(jìn)程運(yùn)行時(shí)數(shù)據(jù)作下一周期資源分配。優(yōu)選地,所述資源分配算法,包括:步驟1:首先計(jì)算中間變量S1、S2為:S1=Σj=1nμjxj]]>S2=Σj=1n(μjxj)1-β]]>其中,n表示工作任務(wù)總種數(shù);μj表示第j種工作任務(wù)的主導(dǎo)份額;xj表示第j種工作任務(wù)的任務(wù)數(shù)量;β表示公平性參量;步驟2:計(jì)算公平性評(píng)價(jià)函數(shù)fβ,λFDS=sgn(1-β)(S1)1+λ-1β(S2)1β]]>其中,λ表示效率權(quán)重參量;sgn是符號(hào)函數(shù);步驟3:計(jì)算公平性評(píng)價(jià)函數(shù)梯度向量:▿i=∂fβ,λFDS∂xi=sgn(1-β)(μi(1+λ-1β)(S1)λ-1β(S2)1β+1-ββμi1-βxi-β(S1)1+λ-1β(S2)1β-1)]]>其中,代表公平性評(píng)價(jià)函數(shù)梯度向量的第i個(gè)分量;i為正整數(shù);xi表示第i種工作任務(wù)的任務(wù)數(shù)量;μi表示第i種工作任務(wù)的主導(dǎo)份額。根據(jù)本發(fā)明提供的一種虛擬化云環(huán)境下GPU-CPU混合資源分配方法,包括:步驟1:首先計(jì)算中間變量S1、S2為:S1=Σj=1nμjxj]]>S2=Σj=1n(μjxj)1-β]]>其中,n表示工作任務(wù)總種數(shù);μj表示第j種工作任務(wù)的主導(dǎo)份額;xj表示第j種工作任務(wù)的任務(wù)數(shù)量;β表示公平性參量;步驟2:計(jì)算公平性評(píng)價(jià)函數(shù)fβ,λFDS=sgn(1-β)(S1)1+λ-1β(S2)1β]]>其中,λ表示效率權(quán)重參量;sgn是符號(hào)函數(shù);步驟3:計(jì)算公平性評(píng)價(jià)函數(shù)梯度向量:▿i=∂fβ,λFDS∂xi=sgn(1-β)(μi(1+λ-1β)(S1)λ-1β(S2)1β+1-ββμi1-βxi-β(S1)1+λ-1β(S2)1β-1)]]>其中,代表公平性評(píng)價(jià)函數(shù)梯度向量的第i個(gè)分量;i為正整數(shù);xi表示第i種工作任務(wù)的任務(wù)數(shù)量;μi表示第i種工作任務(wù)的主導(dǎo)份額。根據(jù)本發(fā)明提供的一種虛擬化云環(huán)境下GPU-CPU混合資源分配系統(tǒng),包括:第一計(jì)算裝置:首先計(jì)算中間變量S1、S2為:S1=Σj=1nμjxj]]>S2=Σj=1n(μjxj)1-β]]>其中,n表示工作任務(wù)總種數(shù);μj表示第j種工作任務(wù)的主導(dǎo)份額;xj表示第j種工作任務(wù)的任務(wù)數(shù)量;β表示公平性參量;第二計(jì)算裝置:計(jì)算公平性評(píng)價(jià)函數(shù)fβ,λFDS=sgn(1-β)(S1)1+λ-1β(S2)1β]]>其中,λ表示效率權(quán)重參量;sgn是符號(hào)函數(shù);第三計(jì)算裝置:計(jì)算公平性評(píng)價(jià)函數(shù)梯度向量:▿i=∂fβ,λFDS∂xi=sgn(1-β)(μi(1+λ-1β)(S1)λ-1β(S2)1β+1-ββμi1-βxi-β(S1)1+λ-1β(S2)1β-1)]]>其中,代表公平性評(píng)價(jià)函數(shù)梯度向量的第i個(gè)分量;i為正整數(shù);xi表示第i種工作任務(wù)的任務(wù)數(shù)量;μi表示第i種工作任務(wù)的主導(dǎo)份額。與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:本發(fā)明提供了FEA算法與資源分配框架,用以高效地進(jìn)行多重異構(gòu)混合資源的動(dòng)態(tài)資源分配。通過(guò)這個(gè)資源分配的操作,提升資源分配的公平性,同時(shí)保證其效率。本發(fā)明能夠顯著提升多個(gè)CPU-GPU多重混合資源需求任務(wù)運(yùn)行時(shí)資源分配的公平性與效率。任務(wù)在使用分配算法時(shí)的公平性,最高有45%的提升。本發(fā)明在提升公平性的同時(shí),也通過(guò)FEA算法的約束條件,以保證任務(wù)運(yùn)行的效率質(zhì)量。附圖說(shuō)明通過(guò)閱讀參照以下附圖對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:圖1為虛擬化云環(huán)境下GPU-CPU混合資源分配系統(tǒng)的結(jié)構(gòu)圖示意圖。圖2為整體公平性評(píng)價(jià)值在不同情況下隨時(shí)間變化圖。具體實(shí)施方式下面結(jié)合具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。以下實(shí)施例將有助于本領(lǐng)域的技術(shù)人員進(jìn)一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應(yīng)當(dāng)指出的是,對(duì)本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變化和改進(jìn)。這些都屬于本發(fā)明的保護(hù)范圍。根據(jù)本發(fā)明提供的一種虛擬化云環(huán)境下GPU-CPU混合資源分配系統(tǒng),其特征在于,包括注入模塊、分配器;注入模塊負(fù)責(zé)設(shè)置鉤子,收集進(jìn)程運(yùn)行時(shí)數(shù)據(jù)并傳出數(shù)據(jù),接收來(lái)自分配器的資源分配目標(biāo)值,并通過(guò)睡眠方式限制進(jìn)程占用資源;分配器負(fù)責(zé)監(jiān)視進(jìn)程,執(zhí)行動(dòng)態(tài)鏈接庫(kù)注入,創(chuàng)建進(jìn)程間通信通道,接收并管理來(lái)自注入模塊的進(jìn)程運(yùn)行時(shí)數(shù)據(jù),調(diào)用資源分配算法得到資源分配目標(biāo)值,并將資源分配目標(biāo)值發(fā)送給注入模塊。優(yōu)選地,注入模塊收集進(jìn)程運(yùn)行時(shí)數(shù)據(jù),然后通過(guò)雙向管道,傳輸至分配器;分配器負(fù)責(zé)接收并匯總進(jìn)程運(yùn)行時(shí)數(shù)據(jù),并以一定時(shí)間間隔運(yùn)行資源分配算法迭代調(diào)度資源分配目標(biāo)值,并通過(guò)雙向管道將資源分配目標(biāo)值回傳至注入模塊;注入模塊根據(jù)資源分配目標(biāo)值,通過(guò)對(duì)FPS高于閾值的進(jìn)程強(qiáng)制睡眠,以控制運(yùn)行狀態(tài),并收集進(jìn)程運(yùn)行時(shí)數(shù)據(jù)作下一周期資源分配。優(yōu)選地,所述資源分配算法,包括:步驟1:首先計(jì)算中間變量S1、S2為:S1=Σj=1nμjxj]]>S2=Σj=1n(μjxj)1-β]]>其中,n表示工作任務(wù)總種數(shù);μj表示第j種工作任務(wù)的主導(dǎo)份額;xj表示第j種工作任務(wù)的任務(wù)數(shù)量;β表示公平性參量;步驟2:計(jì)算公平性評(píng)價(jià)函數(shù)fβ,λFDS=sgn(1-β)(S1)1+λ-1β(S2)1β]]>其中,λ表示效率權(quán)重參量;sgn是符號(hào)函數(shù);步驟3:計(jì)算公平性評(píng)價(jià)函數(shù)梯度向量:▿i=∂fβ,λFDS∂xi=sgn(1-β)(μi(1+λ-1β)(S1)λ-1β(S2)1β+1-ββμi1-βxi-β(S1)1+λ-1β(S2)1β-1)]]>其中,代表公平性評(píng)價(jià)函數(shù)梯度向量的第i個(gè)分量;i為正整數(shù);xi表示第i種工作任務(wù)的任務(wù)數(shù)量;μi表示第i種工作任務(wù)的主導(dǎo)份額。根據(jù)本發(fā)明提供的一種虛擬化云環(huán)境下GPU-CPU混合資源分配方法,包括:步驟1:首先計(jì)算中間變量S1、S2為:S1=Σj=1nμjxj]]>S2=Σj=1n(μjxj)1-β]]>其中,n表示工作任務(wù)總種數(shù);μj表示第j種工作任務(wù)的主導(dǎo)份額;xj表示第j種工作任務(wù)的任務(wù)數(shù)量;β表示公平性參量;步驟2:計(jì)算公平性評(píng)價(jià)函數(shù)fβ,λFDS=sgn(1-β)(S1)1+λ-1β(S2)1β]]>其中,λ表示效率權(quán)重參量;sgn是符號(hào)函數(shù);步驟3:計(jì)算公平性評(píng)價(jià)函數(shù)梯度向量:▿i=∂fβ,λFDS∂xi=sgn(1-β)(μi(1+λ-1β)(S1)λ-1β(S2)1β+1-ββμi1-βxi-β(S1)1+λ-1β(S2)1β-1)]]>其中,代表公平性評(píng)價(jià)函數(shù)梯度向量的第i個(gè)分量;i為正整數(shù);xi表示第i種工作任務(wù)的任務(wù)數(shù)量;μi表示第i種工作任務(wù)的主導(dǎo)份額。根據(jù)本發(fā)明提供的一種虛擬化云環(huán)境下GPU-CPU混合資源分配系統(tǒng),包括:第一計(jì)算裝置:首先計(jì)算中間變量S1、S2為:S1=Σj=1nμjxj]]>S2=Σj=1n(μjxj)1-β]]>其中,n表示工作任務(wù)總種數(shù);μj表示第j種工作任務(wù)的主導(dǎo)份額;xj表示第j種工作任務(wù)的任務(wù)數(shù)量;β表示公平性參量;第二計(jì)算裝置:計(jì)算公平性評(píng)價(jià)函數(shù)fβ,λFDS=sgn(1-β)(S1)1+λ-1β(S2)1β]]>其中,λ表示效率權(quán)重參量;sgn是符號(hào)函數(shù);第三計(jì)算裝置:計(jì)算公平性評(píng)價(jià)函數(shù)梯度向量:▿i=∂fβ,λFDS∂xi=sgn(1-β)(μi(1+λ-1β)(S1)λ-1β(S2)1β+1-ββμi1-βxi-β(S1)1+λ-1β(S2)1β-1)]]>其中,代表公平性評(píng)價(jià)函數(shù)梯度向量的第i個(gè)分量;i為正整數(shù);xi表示第i種工作任務(wù)的任務(wù)數(shù)量;μi表示第i種工作任務(wù)的主導(dǎo)份額。下面對(duì)本發(fā)明進(jìn)行更為具體的說(shuō)明。為了能夠保證分配算法在實(shí)際應(yīng)用之中的有效性,算法的性質(zhì)必須兼顧精確度與時(shí)間復(fù)雜度,并需要在二者之間進(jìn)行權(quán)衡。因此,在設(shè)計(jì)迭代最優(yōu)化求解算法之時(shí),完全將數(shù)學(xué)公式轉(zhuǎn)換成為等價(jià)的數(shù)值計(jì)算程序是不可行的。為了保證高效性,我們認(rèn)為算法應(yīng)該具有以下特性:首先,算法每進(jìn)行一次迭代,均可以得到一個(gè)近似的可行解,這也就保證了每次算法運(yùn)行所獲得的結(jié)果值均可以被用作進(jìn)行資源調(diào)度分配,而不必檢測(cè)近似解是否可行,同時(shí)也不必在某一次調(diào)用算法時(shí)多次執(zhí)行算法。其次,算法在分配參數(shù)保持穩(wěn)定不變的情況下經(jīng)過(guò)多次迭代能夠精確收斂至最優(yōu)值。這點(diǎn)同樣非常重要,因?yàn)檫@保證了算法的正確性,同時(shí)不會(huì)產(chǎn)生因?yàn)樗惴ㄔO(shè)計(jì)上的不足而使得分配結(jié)果不斷震蕩,無(wú)法穩(wěn)定在正確的精確值之上。再其次,算法可以接受在兩次迭代之間分配參數(shù)及當(dāng)前迭代出發(fā)點(diǎn)發(fā)生修改,并基于之前迭代所確定的搜索步長(zhǎng)等迭代結(jié)果直接執(zhí)行,而不需要每一次修改問(wèn)題參數(shù)之后,均需要從原始點(diǎn)重新開(kāi)始迭代求解問(wèn)題。這可以說(shuō)是對(duì)于分配器而言,非常重要的一個(gè)算法性質(zhì)。因?yàn)樵诜峙淦鬟\(yùn)行的過(guò)程中,其所監(jiān)視的相關(guān)進(jìn)程對(duì)于資源與性能的需求并非穩(wěn)恒不變的,相反,這些參數(shù)往往時(shí)時(shí)刻刻波動(dòng)著。同時(shí)當(dāng)下一次檢測(cè)到每一個(gè)相關(guān)進(jìn)程的執(zhí)行時(shí)完成工作任務(wù)的速率,也一般不可能與分配值精確相等。如果算法無(wú)法滿足這個(gè)性質(zhì),那么每一次算法獲得新的運(yùn)行時(shí)數(shù)據(jù)之時(shí),就意味著迭代需要重新開(kāi)始,花費(fèi)多次迭代最終穩(wěn)定,這是非常低效的。最后,算法可以犧牲一定的收斂速度,但每一次求出近似解的迭代計(jì)算應(yīng)該盡量簡(jiǎn)單,減少計(jì)算量,保證每一次迭代都能夠盡可能快地完成。這樣的話,就能夠比較輕松的通過(guò)每次調(diào)用的迭代次數(shù),控制算法收斂的速度,使得算法的配置更為靈活,同時(shí),使得一定時(shí)間間隔內(nèi)因?yàn)榉峙涞鴮?dǎo)致的計(jì)算代價(jià)盡量減小。除此以外,因?yàn)閷?shí)際應(yīng)用之中的算法所求解的最優(yōu)化問(wèn)題,實(shí)際上的約束條件是線性的,同時(shí)數(shù)量也有限定:因?yàn)楫?dāng)前系統(tǒng)僅僅考慮CPU與GPU二種計(jì)算資源的分配,約束條件亦即為二種計(jì)算資源總量的約束,即約束條件僅為兩個(gè),這亦使得算法能夠得到極大簡(jiǎn)化。下文將會(huì)簡(jiǎn)單列出算法的基本流程(目標(biāo)函數(shù)最小值求解,一次迭代):步驟(1):計(jì)算當(dāng)前點(diǎn)是否違反CPU資源約束條件。步驟(2):若違反CPU資源約束條件,則計(jì)算當(dāng)前點(diǎn)在CPU資源約束方程超平面上的正交投影,進(jìn)入步驟(3);否則,則跳轉(zhuǎn)至步驟(4)。步驟(3):將當(dāng)前點(diǎn)設(shè)置為此正交投影。步驟(4):計(jì)算當(dāng)前點(diǎn)是否違反GPU資源約束條件。步驟(5):若違反GPU資源約束條件,則計(jì)算當(dāng)前點(diǎn)在CPU資源約束方程超平面上的正交投影,進(jìn)入步驟(6);否則,則跳轉(zhuǎn)至步驟(7)。步驟(6):將當(dāng)前點(diǎn)設(shè)置為此正交投影。步驟(7):計(jì)算目標(biāo)函數(shù)(公平性函數(shù)取負(fù),以便將最大化問(wèn)題化為最小化問(wèn)題)在當(dāng)前點(diǎn)位置的梯度值,并將梯度值標(biāo)準(zhǔn)化(保證向量模為一)。步驟(8):如果當(dāng)前點(diǎn)不在約束條件邊界上,或雖然在約束條件邊界上,但梯度方向指向邊界外側(cè),則設(shè)置搜索方向?yàn)樘荻确捶较颍D(zhuǎn)至步驟(11),其中,約束條件邊界是指CPU資源約束條件邊界或GPU資源約束條件邊界;否則,則進(jìn)入步驟(9)。步驟(9):如果當(dāng)前點(diǎn)在CPU資源約束條件邊界或GPU資源約束條件邊界上,且梯度方向指向邊界內(nèi)側(cè),計(jì)算梯度向量在約束條件方程超平面上的正交投影向量。步驟(10):設(shè)置搜索方向?yàn)榇苏煌队跋蛄糠捶较?,并稍稍減小搜索步長(zhǎng)。步驟(11):計(jì)算當(dāng)前點(diǎn),當(dāng)前點(diǎn)沿搜索方向延長(zhǎng)長(zhǎng)度為步長(zhǎng)到達(dá)的點(diǎn),當(dāng)前點(diǎn)沿搜索方向延長(zhǎng)長(zhǎng)度為步長(zhǎng)的0.618倍到達(dá)的點(diǎn)分別的目標(biāo)函數(shù)值a,b,c。步驟(12):若a≥b≥c,則返回c作為目標(biāo)函數(shù)值,對(duì)應(yīng)點(diǎn)為近似可行解。且當(dāng)a>b>c連續(xù)數(shù)次,則增加搜索步長(zhǎng)(加快收斂速度,應(yīng)對(duì)迭代間隙參數(shù)變化)。步驟(13):若b>a,則返回a作為目標(biāo)函數(shù)值,對(duì)應(yīng)點(diǎn)為近似可行解。較多減小搜索步長(zhǎng)。步驟(14):其余情況,則返回b作為目標(biāo)函數(shù)值,對(duì)應(yīng)點(diǎn)為近似可行解。較少減小搜索步長(zhǎng)。通過(guò)上述過(guò)程在一定時(shí)間間隔下的多次迭代,我們能夠使用近似值逼近原資源分配問(wèn)題的非線性規(guī)劃,得到近似的資源分配最優(yōu)化。在使用少量計(jì)算資源的前提下完成資源分配的優(yōu)化,提升其公平性與效率。雖然上文的算法設(shè)計(jì)已經(jīng)使得原先的每一次求近似解時(shí)的多重循環(huán)迭代修改成了除進(jìn)行向量運(yùn)算遍歷向量分量之外不存在循環(huán),然而此時(shí)算法的復(fù)雜度仍然受到對(duì)于目標(biāo)函數(shù)進(jìn)行計(jì)算的計(jì)算復(fù)雜度影響。首先,上文之中的公式作為目標(biāo)函數(shù),此處列出的公式形式考慮的是其實(shí)際意義,乘積的每一項(xiàng)具有不同的數(shù)學(xué)含義,但為了運(yùn)算的簡(jiǎn)便,可以做出如下變形:fβ,λFDS=sgn(1-β)(Σj=1nμjxj)1+λ-1β(Σj=1n(μjxj)1-β)1β]]>其中,表示FDS公平性衡量函數(shù);β表示參量;n表示工作任務(wù)總種數(shù);μj表示第j種工作任務(wù)的主導(dǎo)份額;xj表示第j種工作任務(wù)的任務(wù)數(shù)量;λ表示參量;sgn是符號(hào)函數(shù);同時(shí),由此可以相應(yīng)計(jì)算出梯度向量的每一個(gè)分量:▿i=∂fβ,λFDS∂xi]]>=sgn(1-β)(μi(1+λ-1β)(Σj=1nμjxj)λ-1β(Σj=1n(μjxj)1-β)1β+1-ββμi1-βxi1-β(Σj=1nμjxj)1+λ-1β(Σj=1n(μjxj)1-β)1β-1)]]>其中,代表梯度向量的第i個(gè)分量,即函數(shù)梯度;xi表示第i種工作任務(wù)的任務(wù)數(shù)量;μi表示第i種工作任務(wù)的主導(dǎo)份額;這樣相比原先的公式,在進(jìn)行計(jì)算之時(shí)復(fù)雜度就大大降低了。原先需要進(jìn)行二重循環(huán)遍歷來(lái)計(jì)算函數(shù)值,現(xiàn)在則僅需要一次循環(huán)遍歷即可計(jì)算得出結(jié)果。然而,我們可以發(fā)現(xiàn),現(xiàn)在所給出的公式之中,仍有一些部分被不必要的重復(fù)計(jì)算了,即項(xiàng)以及項(xiàng),因此,假設(shè)中間變量S1、S2為:S1=Σj=1nμjxj]]>S2=Σj=1n(μjxj)1-β]]>則公式分別化為:fβ,λFDS=sgn(1-β)(S1)1+λ-1β(S2)1β]]>以及▿i=∂fβ,λFDS∂xi=sgn(1-β)(μi(1+λ-1β)(S1)λ-1β(S2)1β+1-ββμi1-βxi-β(S1)1+λ-1β(S2)1β-1)]]>對(duì)于梯度而言,通過(guò)事先計(jì)算S1、S2這兩項(xiàng)和值,相比原先每次計(jì)算一個(gè)分量便必須要進(jìn)行一次計(jì)算的求和項(xiàng)僅僅只需要進(jìn)行一次計(jì)算,省去了重復(fù)計(jì)算的時(shí)間耗費(fèi)。資源分配系統(tǒng)框架的設(shè)計(jì)與實(shí)現(xiàn),在對(duì)于多重資源混合分配的方法分析與比較的工作之中,位于重要的基礎(chǔ)位置。它需要完成一系列包括收集數(shù)據(jù)、消息通信、進(jìn)程管理、運(yùn)行并評(píng)估資源分配算法的作業(yè)。同時(shí),還需要在一定程度上保證框架整體的靈活度,使得系統(tǒng)框架具有一定的可配置性與可重用性??傮w來(lái)說(shuō),整個(gè)資源分配系統(tǒng)分為三部分。分別是注入模塊、資源分配器以及輸出顯示器。輸出顯示器可參照現(xiàn)有技術(shù)實(shí)現(xiàn),不再贅述。注入模塊負(fù)責(zé)設(shè)置鉤子,收集相關(guān)進(jìn)程運(yùn)行時(shí)數(shù)據(jù),傳出數(shù)據(jù),接收資源分配目標(biāo)值并通過(guò)睡眠方式限制進(jìn)程占用資源。而資源分配器負(fù)責(zé)監(jiān)視相關(guān)進(jìn)程,執(zhí)行動(dòng)態(tài)鏈接庫(kù)注入,創(chuàng)建進(jìn)程間通信通道,接收并管理相關(guān)進(jìn)程運(yùn)行時(shí)數(shù)據(jù),調(diào)用資源分配算法,發(fā)送計(jì)算結(jié)果目標(biāo)值并接受用戶輸入。資源分配器在開(kāi)始對(duì)于相關(guān)進(jìn)程進(jìn)行資源分配之后,其功能執(zhí)行的流程循環(huán):首先由注入模塊收集運(yùn)行時(shí)數(shù)據(jù),然后通過(guò)雙向管道,傳輸至資源分配器,由資源分配器負(fù)責(zé)接受并匯總數(shù)據(jù),并以一定時(shí)間間隔運(yùn)行資源分配算法迭代調(diào)度目標(biāo)值,并通過(guò)雙向管道回傳至注入模塊,注入模塊根據(jù)資源分配目標(biāo)值,通過(guò)對(duì)FPS過(guò)高的進(jìn)程強(qiáng)制睡眠,控制其運(yùn)行狀態(tài),同時(shí)收集數(shù)據(jù)作下一周期資源分配。而圖1主要表現(xiàn)的是在整個(gè)資源分配平臺(tái)系統(tǒng)之中,各進(jìn)程之間的關(guān)系??梢钥闯?,資源分配器是作為中心存在的。狀態(tài)顯示程序負(fù)責(zé)顯示所有資源分配器所產(chǎn)生的狀態(tài)變化輸出,而與資源分配相關(guān)的虛擬機(jī)進(jìn)程則由資源分配器負(fù)責(zé)注入插入模塊,負(fù)責(zé)一些必須在進(jìn)程內(nèi)部運(yùn)行的工作。而無(wú)論是狀態(tài)顯示程序還是虛擬機(jī)進(jìn)程,均通過(guò)特別配置的雙向管道,與資源分配器進(jìn)程進(jìn)行通信。本發(fā)明主要涉及兩個(gè)主要的發(fā)明點(diǎn):動(dòng)態(tài)資源分配框架,基于FDS的多重混合資源分配算法,記為FEA算法。其中動(dòng)態(tài)資源分配框架主要用以完成一系列包括收集數(shù)據(jù),消息通信,進(jìn)程管理,運(yùn)行并評(píng)估調(diào)度算法的任務(wù),是一種新型的動(dòng)態(tài)云端游戲任務(wù)運(yùn)行平臺(tái),用以支持我們?cè)O(shè)計(jì)的基于FDS的多重混合資源分配算法。本發(fā)明提供的虛擬化云環(huán)境下GPU-CPU混合資源分配方法,包括基于FDS的多重混合資源分配算法,主要用以在低計(jì)算資源耗費(fèi)的前提下,近似的,迭代化的動(dòng)態(tài)適應(yīng)任務(wù)資源需求并進(jìn)行公平性與效率的最優(yōu)化分配。通過(guò)這兩個(gè)發(fā)明點(diǎn)的共同作用,我們能夠得到的效果為:顯著提升多個(gè)CPU-GPU多重混合資源需求任務(wù)運(yùn)行時(shí)資源分配的公平性與效率。任務(wù)在使用分配算法時(shí)的公平性,最高有45%的提升。同時(shí),我們?cè)谔嵘叫缘耐瑫r(shí),也通過(guò)FEA算法的約束條件,以保證任務(wù)運(yùn)行的效率質(zhì)量。我們將通過(guò)一個(gè)具體實(shí)施例來(lái)做進(jìn)一步說(shuō)明。在本實(shí)施例中,運(yùn)行平臺(tái)的配置確定如下。在硬件上,系統(tǒng)硬件的型號(hào)是:(1)CPU:IntelCorei7-2600k3.4GHz(2)內(nèi)存RAM:16GB(3)顯卡:AMDHD6750(4)顯存:2GB物理機(jī)的操作系統(tǒng)限制為Windows764位版本,因?yàn)樯婕暗秸{(diào)度系統(tǒng)平臺(tái)模塊中用以實(shí)現(xiàn)動(dòng)態(tài)鏈接庫(kù)注入以及鉤子功能的開(kāi)源模塊EasyHook的兼容性問(wèn)題,操作系統(tǒng)限制為原生未更新?tīng)顟B(tài)。虛擬機(jī)運(yùn)行的系統(tǒng)使用的是VMWarePlayerv4.0。另外每一個(gè)虛擬機(jī)都配置為有兩個(gè)CPU核,2GB內(nèi)存。另外調(diào)度參數(shù)取λ=-0.5,β=2。在下文實(shí)驗(yàn)之中,調(diào)度算法均每秒執(zhí)行一次,每次運(yùn)行十次迭代。在此處,我們使用三個(gè)虛擬機(jī),分別運(yùn)行游戲DiRT3在1920*1080分辨率下,運(yùn)行游戲NBA2k在1920*1080分辨率下,以及Farcry2benchmark在1024*768分辨率下。對(duì)照組為其余資源分配計(jì)算及虛擬機(jī)與調(diào)度器通信均同上,但不設(shè)置調(diào)度目標(biāo),使虛擬機(jī)運(yùn)行于未調(diào)度情況下,以及VGASA策略(限制所有任務(wù)每秒最多渲染30幀),以虛線分別列出,并以實(shí)線表示三十次間隔動(dòng)態(tài)平均值??梢詮膱D上看出的是,在經(jīng)過(guò)調(diào)度之后,公平性的震蕩相比之下降低同樣明顯,同時(shí)資源分配的公平性有了整體的改善。定量的來(lái)說(shuō),分別有標(biāo)準(zhǔn)差是0.252,0.150,平均值-3.436,-3.042,相比未調(diào)度情況,有11.5%提升。同時(shí),相比VGASA策略,有45%提升。本領(lǐng)域技術(shù)人員知道,除了以純計(jì)算機(jī)可讀程序代碼方式實(shí)現(xiàn)本發(fā)明提供的系統(tǒng)及其各個(gè)裝置、模塊、單元以外,完全可以通過(guò)將方法步驟進(jìn)行邏輯編程來(lái)使得本發(fā)明提供的系統(tǒng)及其各個(gè)裝置、模塊、單元以邏輯門、開(kāi)關(guān)、專用集成電路、可編程邏輯控制器以及嵌入式微控制器等的形式來(lái)實(shí)現(xiàn)相同功能。所以,本發(fā)明提供的系統(tǒng)及其各項(xiàng)裝置、模塊、單元可以被認(rèn)為是一種硬件部件,而對(duì)其內(nèi)包括的用于實(shí)現(xiàn)各種功能的裝置、模塊、單元也可以視為硬件部件內(nèi)的結(jié)構(gòu);也可以將用于實(shí)現(xiàn)各種功能的裝置、模塊、單元視為既可以是實(shí)現(xiàn)方法的軟件模塊又可以是硬件部件內(nèi)的結(jié)構(gòu)。以上對(duì)本發(fā)明的具體實(shí)施例進(jìn)行了描述。需要理解的是,本發(fā)明并不局限于上述特定實(shí)施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變化或修改,這并不影響本發(fā)明的實(shí)質(zhì)內(nèi)容。在不沖突的情況下,本申請(qǐng)的實(shí)施例和實(shí)施例中的特征可以任意相互組合。當(dāng)前第1頁(yè)1 2 3