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

3 實驗結果


4 結束語