李水泉,鄧 泓
(1.深圳大學(xué) 計算機與軟件學(xué)院,廣東 深圳 518060;2.江西農(nóng)業(yè)大學(xué) 軟件學(xué)院,江西 南昌 330045;3.江西省高等學(xué)校農(nóng)業(yè)信息技術(shù)重點實驗室,江西 南昌 330045)
云計算是近年來新興的一種商業(yè)計算模型[1],它將用戶提交的任務(wù)分布到由大量計算資源構(gòu)成的資源池中,在計算完成后將結(jié)果返回給用戶。由于云計算具有計算能力強、價格低廉、使用簡單等特點,使得云計算用戶的數(shù)量迅速增加,同時也使計算任務(wù)數(shù)量與日劇增。如果對數(shù)量龐大的任務(wù)調(diào)度不合理,將導(dǎo)致完成任務(wù)的時間長以及計算資源的浪費。針對任務(wù)調(diào)度屬于NP難[2]的問題,且任務(wù)數(shù)量龐大時不能通過暴力求解得到最早的任務(wù)最早完成時間和負載最均衡[3]策略,研究如何合理調(diào)度云計算任務(wù),以達到較好的最早完成時間和負載均衡,是具有重要意義的。目前,針對最早完成時間或負載均衡提出的云計算任務(wù)調(diào)度算法主要有以下幾種:傳統(tǒng)網(wǎng)格計算中的調(diào)度算法,如min-min算法[4]和max-min算法[5]。這兩種算法都采用貪心策略,將最小或最大的任務(wù)分配到可以最早完成它們的機器上,實現(xiàn)局部最小完成時間,但它們的最早完成時間一般不是最好的,同時min-min算法沒有考慮負載均衡;現(xiàn)有成熟的云計算平臺的調(diào)度算法,如Hadoop中的默認任務(wù)調(diào)度算法[6]。該算法使用FIFO隊列策略,采用較公平的原則,將先提交的且優(yōu)先級高的任務(wù)分配到空閑的機器上,使得在最后一個任務(wù)分配前所有機器都處于工作狀態(tài),但它沒有考慮最早完成時間問題;啟發(fā)式智能算法,如遺傳算法、粒子群算法、蟻群算法及對它們的混合算法等[7-13]。這些算法雖然在選取了合適參數(shù)和迭代次數(shù)的基礎(chǔ)上能獲得較優(yōu)的解,但是算法復(fù)雜,在實際的實現(xiàn)過程中參數(shù)和迭代次數(shù)的選取困難,并且它們對于大量任務(wù)的處理時間較長,因此算法的穩(wěn)定性不高。
針對上述算法的不足之處,考慮如何調(diào)度任務(wù)以達到較早的最早完成時間和較好的負載均衡,文中提出相對最小執(zhí)行時間方差的云計算任務(wù)調(diào)度算法min-variance。該算法在max-min算法分配任務(wù)的基礎(chǔ)上,利用任務(wù)位置的轉(zhuǎn)移能夠改變各計算資源的執(zhí)行時間方差,增加了有限次數(shù)的任務(wù)在計算資源上的位置轉(zhuǎn)移,從而達到相對最小的執(zhí)行時間方差,實現(xiàn)最早完成時間較早和負載較均衡。
目前,云計算的任務(wù)調(diào)度問題在云計算系統(tǒng)中具有重要的研究意義。在云計算系統(tǒng)中,存在一個若干不同性能的計算資源構(gòu)成的資源池,云計算的任務(wù)調(diào)度即是從資源池中選擇合適的計算資源處理不同長度的計算任務(wù)。隨著云計算技術(shù)的成熟與發(fā)展,云計算任務(wù)數(shù)量大量增加,因此將云計算任務(wù)合理分配給各計算資源對提高處理效率、節(jié)省電力等具有重要作用。
文中研究的目的是實現(xiàn)負載較均衡和達到較早的最早完成時間,在現(xiàn)有的計算任務(wù)調(diào)度算法中,無論是傳統(tǒng)的貪心算法,如min-min和max-min算法,還是智能型啟發(fā)式算法,如遺傳算法和蟻群算法等,其計算結(jié)果往往不是最優(yōu)。這是因為貪心策略的思想是從局部最優(yōu)解得到全局最優(yōu)解,這樣的解并不是最優(yōu)的;而智能啟發(fā)式算法大多是從全局最優(yōu)出發(fā),進而得到調(diào)度的解,這種方法理論上能得到最優(yōu)解,但是收斂速度卻不能控制,因此其解也不是最優(yōu)。所以在得到其任務(wù)調(diào)度結(jié)果后,往往很容易找到一個任務(wù),轉(zhuǎn)移這個任務(wù)到另一個計算資源后將得到更早的最早完成時間,或者使各計算資源的任務(wù)完成時間更加接近,即得到一個更優(yōu)的解,文中即根據(jù)這一事實提出min-variance算法,通過一定次數(shù)變換任務(wù)在計算資源的位置從而得到完成時間的相對最小方差,進而求得更優(yōu)解。
min-variance算法在CloudSim[14]上實現(xiàn)。CloudSim是由墨爾本大學(xué)推出的云計算仿真軟件,主要用于模擬云計算基礎(chǔ)架構(gòu)和服務(wù),在云計算的研究中廣泛使用,因此在該仿真軟件上實現(xiàn)的min-variance算法可用于真實的云計算環(huán)境中。min-variance算法在CloudSim工作模型中的關(guān)系如圖1所示。
圖1 min-variance算法與CloudSim工作模型關(guān)系圖
任務(wù)調(diào)度問題是一種組合問題,通過計算所有組合可以找到一個最小的執(zhí)行時間方差,但任務(wù)數(shù)量往往較大,不可能通過暴力求解所有組合,因而也不可能計算出執(zhí)行時間方差的最小值,所以文中算法的執(zhí)行結(jié)果只能在某一區(qū)間內(nèi)最小,該區(qū)間的值域由任務(wù)、計算資源和算法共同決定。
將n個任務(wù)劃分到k個計算資源中,則每個計算資源有一個任務(wù)集合,計算資源執(zhí)行完任務(wù)集合中的所有任務(wù)有一個執(zhí)行時間t,所有的t構(gòu)成集合T,執(zhí)行時間方差就是集合T的方差。因為方差衡量的是一組離散數(shù)據(jù)的偏離程度,所以執(zhí)行時間的方差在一定程度上反映負載均衡的問題,即執(zhí)行時間的方差越小,說明負載越均衡。文中算法就是在初始執(zhí)行時間方差的基礎(chǔ)上,不斷減小方差,以達到負載較均衡和較早完成時間。執(zhí)行時間方差的計算公式如下:
(1)
(2)
圖1中左邊兩列表示每個云計算用戶提交若干個計算任務(wù),右邊兩列表示虛擬機與數(shù)據(jù)中心的映射關(guān)系(虛擬機存在于硬件層之上,便于對硬件的操作),中間列表示通過一個調(diào)度器進行任務(wù)調(diào)度,使任務(wù)與虛擬機發(fā)生映射,而調(diào)度器使用的調(diào)度算法即min-variance算法,在算法執(zhí)行完后,得到任務(wù)的分配調(diào)度結(jié)果,再由虛擬機調(diào)度任務(wù)。
經(jīng)過分析發(fā)現(xiàn),執(zhí)行時間方差的值可以由以下兩種方式改變:將一個計算資源的任務(wù)集合中的一個任務(wù)放到另一個計算資源中;將一個計算資源的任務(wù)集合中的一個任務(wù)與另一個計算資源任務(wù)集合中的一個任務(wù)進行位置變換。因此,通過這兩種方式可以使方差不斷減小。另外,通過這兩種方式減小的方差一定能在某個值終止,這是因為任務(wù)和計算資源在計算機上都是離散的且數(shù)量是一定的,因此不可能使方差一直減小,即通過一定次數(shù)的迭代找到最小的方差?;谝陨戏治觯琺in-variance算法具有可行性,并能夠達到負載的較均衡和較早的最早完成時間。
(4)將task加入到計算資源l(0≤l 5.山水迥異,有如將要崩裂樣險要;有騰空而起的高突,有像胳膊肘兒一樣的山體延伸;有并排矗立而眾多的大小山頭。 預(yù)測是很重要的一步,也是跟寫作相關(guān)的一個思考過程,看看這樣一個標題,如果是學(xué)生自己會以什么樣的思路展開文章。 (2)利用式1和式2計算執(zhí)行時間方差D(T),記為min_dt,同時計算最早完成時間min_v。 (3) 在計算出Time后,從任務(wù)0開始,依次將各個任務(wù)加入到能夠最早完成該任務(wù)的計算資源的任務(wù)列表中。 假設(shè)有n個任務(wù)將分配到k個計算資源中,令tasknum(i)表示計算資源i中的任務(wù)數(shù)量,則min-variance算法流程如下: (5)將task與計算資源l(0≤l Time[j][i]=MI[j]/MIPS[i] 兩種焊接工藝焊縫的金相組織如圖7a所示,其中間部分是針狀鐵素體,周圍是晶界鐵素體。自動焊焊縫中的組織比手工焊分布更加均勻,晶粒更加細小。 (3)依次選取計算資源i中的任務(wù)j,記為task。若i=k-1,j=tasknum(i),則轉(zhuǎn)到步驟7。 科學(xué)合理的建筑規(guī)劃和形態(tài)設(shè)計能夠適應(yīng)惡劣的氣候環(huán)境,它包括建筑物整體容積的確定、建筑物的形狀和建筑形式的組合、建筑物的日照和朝向。譬如,陽光和方向的選擇原則是獲得充足的陽光,避免冬天流通的強風(fēng),在夏季利用自然通風(fēng)來防止太陽輻射。同時,建筑受社會歷史條件、歷史條件、地理條件、城市規(guī)劃、道路、環(huán)境等因素的制約,建筑物樓面的朝向和設(shè)計應(yīng)考慮多種影響因素。 min-variance算法的核心部分在于有限次數(shù)的任務(wù)位置轉(zhuǎn)移從而達到相對最小的執(zhí)行時間方差,因此任務(wù)的初始化分配很大程度決定了算法核心部分的運算時間,所以采用合適的方法進行任務(wù)的初始化分配具有重要作用。與其他初始化任務(wù)分配方法相比,max-min算法同時具備以下幾個優(yōu)勢:算法復(fù)雜度不高,能夠快速進行初始化;先將較大的任務(wù)分配到能夠最早完成它的計算資源上,這種方式能夠?qū)崿F(xiàn)較好的負載均衡;采用貪心策略以取得較早的完成時間。這三點優(yōu)勢能夠使得min-variance不但能快速完成初始化分配,還能在算法核心部分運算之前就有了較好的負載均衡和較早的最早完成時間,從而減小了后續(xù)的計算量,因此min-variance使用max-min算法作為任務(wù)的初始化分配方法。 max-min算法采用貪心策略,先將較大的任務(wù)分配到能夠最早完成它的計算資源上。首先將任務(wù)按指令長度由大到小進行排列,同時將計算資源按計算速度由小到大排列,再計算出各個任務(wù)在各虛擬機上的執(zhí)行時間。用二維數(shù)組Time[j][i]表示第j個任務(wù)在第i個計算資源的執(zhí)行時間,MI表示任務(wù)指令長度,MIPS表示計算資源的執(zhí)行速度,計算方法如下: (1)用max-min算法初始化任務(wù)分配。 (6)轉(zhuǎn)到步驟3。 (7)若resu為空時,則算法結(jié)束,否則重復(fù)步驟3~6。 Step 2 Solve the IKPI value ujof the manipulator when the end-effector is located at scatter pjin the degraded workspace by the constructed IKPI. min-variance算法的程序流程如圖2所示。 圖2 min-variance算法的程序流程 實驗在CloudSim仿真器上進行。由于現(xiàn)實條件下各種云計算任務(wù)數(shù)量的差別較大,同時各任務(wù)指令長度的長短差距也很大,為了能更好地模擬真實條件下的云計算任務(wù)調(diào)度,實驗設(shè)置了5組不同數(shù)量的任務(wù),使用同一組虛擬機(CloudSim中虛擬機的執(zhí)行速度相當于真實云環(huán)境中計算資源的執(zhí)行速度)分別對其進行處理。其中虛擬機共有8個,執(zhí)行速度MIPS都在10到1 000之間,而任務(wù)的長度MI都在100到100 000之間。實驗結(jié)果如表1和表2所示。 廣東理工學(xué)院是屬于應(yīng)用型本科院校,對教師提出的要求也比較高,同時,每年都會派出大量的教師外出培訓(xùn)更新知識,也會派出大量的教師到企業(yè)中去實踐,加強校企合作,還通過教師帶隊和學(xué)生一起到企業(yè)實踐,同時鼓勵教師多做科研,通過多種多樣的形式提高教師們能力。建設(shè)一支知識和能力結(jié)合的教學(xué)科研隊伍。其次,學(xué)校還聘請了注冊會計師和很多企業(yè)會計總監(jiān)、財務(wù)經(jīng)理來我校兼職任教和培訓(xùn),這些對我們“雙師型”的師資隊伍建設(shè)及教學(xué)都得到提高。 表1 不同數(shù)量的任務(wù)在同一組虛擬機 上的最早完成時間 s 表2 各虛擬機執(zhí)行時間的最大差 s 與min-variance算法相比較的其他四種算法都屬于以最早完成時間或負載均衡為目標的任務(wù)調(diào)度算法,其中蟻群算法的螞蟻個數(shù)設(shè)置為任務(wù)數(shù),迭代次數(shù)為35,遺傳算法交叉概率設(shè)置為0.25,變異概率設(shè)置為0.04,迭代次數(shù)為100。從表1和表2可以看出,min-min、蟻群和遺傳算法進行的任務(wù)調(diào)度結(jié)果互有優(yōu)劣,但與max-min和min-variance算法相比,雖然在任務(wù)數(shù)為40時蟻群算法的最早完成時間較max-min算法好,但在其余情況下最早完成時間較晚,且各虛擬機執(zhí)行時間的最大差較大,這是因為智能型的蟻群和遺傳算法受參數(shù)影響較大,且由于它們沒有考慮負載均衡,使得負載不均衡。min-min算法優(yōu)先放置較短的指令到能最快執(zhí)行完它的計算資源上,不但使得負載不均衡,而且當出現(xiàn)有某個任務(wù)遠長于其他任務(wù)時則表現(xiàn)出最早完成時間較晚。min-variance算法是在max-min的基礎(chǔ)上繼續(xù)提前最早完成時間和實現(xiàn)更好的負載均衡,由數(shù)據(jù)可以看出,min-variance算法在最早完成時間上都早于max-min算法,而隨著任務(wù)的增長,所提前的最早完成時間可能更多,并且其虛擬機執(zhí)行時間的最大差比max-min算法小很多,實現(xiàn)了較好的負載均衡。因此與其他四種算法相比,min-variance算法在最早完成時間和負載均衡上都有更好的效果。 隨著放開市場準入、減稅降費、推動產(chǎn)權(quán)保護等多項激發(fā)民間投資活力政策的逐步落實,全省民間投資始終保持良好的增長態(tài)勢。1-10月,全省民間投資同比增長16.9%,增速較1-9月提高2.1個百分點,較去年同期提高5.1個百分點,對固定資產(chǎn)投資的貢獻率達57.3%,貢獻率較1-9月提高5.1個百分點。 云計算任務(wù)調(diào)度算法對于云計算的計算效率具有重要影響,而任務(wù)調(diào)度問題是一個NP難問題,因此只有不斷探索更加高效的調(diào)度算法才能應(yīng)對不斷增長的云計算用戶和任務(wù)數(shù)量。為實現(xiàn)更早的最早完成時間和負載較均衡,提出了min-variance算法,在max-min算法的基礎(chǔ)上不斷縮小各虛擬機執(zhí)行時間的方差,取得了較好的效果。 min-variance算法雖然能夠?qū)崿F(xiàn)較好的最早完成時間和負載較均衡,但仍有許多工作需要進行:現(xiàn)實中的云計算資源在內(nèi)存等方面各不相同,因此需要在文中研究的基礎(chǔ)上更真實地模擬實際中的云環(huán)境;一些任務(wù)存在依賴問題,故需要添加任務(wù)的依賴關(guān)系。2.4 算法流程
3 實驗結(jié)果
4 結(jié)束語