基于云計算的調度算法
來源:用戶上傳
作者:
摘要 文章從云計算的優勢分析入手,論述了基于云計算的調度算法。期望通過本文的研究能夠對高新能算法在云計算系統任務調度中的合理運用有所幫助。
【關鍵詞】云計算 任務 調度算法
1 云計算的優勢
云計算是由全球最大的搜索引擎公司-谷歌(Google),于2006年全球搜索引擎會議上提出的一種計算方法,其以效率高、成本低等特點,在各個領域中得到越來越廣泛的應用,它的出現使計算科學領域發生了巨大改變。云計算的優勢具體體現在如下幾個方面:
1.1 低廉的成本
目前,大部分企事業單位在IT方面的主要支出包括以下費用:設備成本、能耗及管理費用等。云計算不需要在設備上投入較多的資金,運維費用相對較少,由此可以為企業節省大量的資金。同時,云計算的成本優勢與規模成正比,即企業應用的云計算規模越大,成本優勢就明顯,資金缺乏的企業可以利用云計算進行項目開發和研究。
1.2 對設備的要求不高
云計算用戶的應用全部都是在云數據中心運行,只要用戶設備能夠接入網絡,便可對云計算進行使用。因此,只要基本的設備配置即可滿足使用需要。
1.3 數據可靠性高
在云計算下,用戶的數據全都存儲在云端,當用戶設備發生故障時,這些數據并不會丟失或是損壞,數據的安全性和可靠性得到有效保證。正是因為云計算所具備的上述優勢,使其成為大多數用戶的首選計算方式。
2 基于云計算的調度算法
云計算系統具有異常強大的功能,可以為用戶提供與數據挖掘、數據處理等方面有關的服務。通常情況下,云計算系統會借助分布式處理技術,對任務進行分割,隨后利用調度算法將各個子任務映射到虛擬資源節點上,調度策略是這一過程實現的前提和基礎,調度算法則是獲得調度策略的關鍵。采用最優的調度算法,可以得到最佳的調度策略,從而使云計算系統保持高效運行,滿足不同用戶的使用需求。
在云計算系統中,可將任務分為兩種情況,一種是獨立任務,另一種是關聯任務。不同的任務類型,需要采用相應的調度算法。下面對此進行具體分析。
2.1 獨立任務調度算法
對于云計算系統中的獨立任務調度而言,可將其歸入到NP-完全問題的范疇,此類問題可以運用傳統的調度算法和啟發式算法。
2.1.1 傳統算法
在傳統調度算法中,比較常用的有以下幾種:
(1)Max-Min算法。這種算法的基本原理是將小任務優先映射到速度最快的虛擬機上。在該算法下,調度器會對每個任務在不同虛擬機上運行的執行時間進行計算,根據計算結果,找出執行時間最少的任務,并將該任務調度至速度最快的虛擬機上。按照這樣的順序,直至全部任務調度完畢為止。這種算法最為突出的優點是可以確保任務處理時間最短,但需要指出的是,部分虛擬機在該算法下可能會一直處于空閑狀態,不利于資源的有效利用。
(2)回填算法。這是一種能夠大幅度提升虛擬機利用效率的算法,在該算法下,系統會為等待隊列當中相對較小的任務預留出一定的資源,并對預約任務隊列的空隙加以合理利用,從而將這部分任務回填至前面,可以使任務的平均等待時間有所減少?;靥钏惴ㄗ顬橥怀龅奶攸c在于復雜程度相對較低,整個過程易于實現,并且具有較為明顯的調度優勢。
2.1.2 啟發式算法
在啟發式算法中,比較常用的有以下幾種:
(1)蟻群算法。這種算法歸屬于概率型算法的范疇,可以借助該算法尋找優化路徑,其最為基本的特征是分布計算和啟發式搜索。蟻群算法是以螞蟻的行走路徑,對待優化問題的可行解進行表示,整個蟻群的所有路徑構成了優化問題的解空間??蓪⒃撍惴ㄔ谌蝿辗峙涞教摂M機的場景中進行應用,雖然通過蟻群算法可以獲得最優解,但若是系統的規模過大,則會導致算法的效率降低。所以在大規模的系統中進行任務調度時,不推薦使用這種算法。
(2)遺傳算法。該算法簡稱GA,其理論基礎是達爾文的生物進化論,通過對自然進化過程的模擬,來搜索最優解。GA在對多個個體的價值進行評估的過程中,主要是借助適應度函數,通過對初始種群的交叉以及變異操作,使最終結果滿足終止條件的要求。該算法的優勢體現在并行處理能力強,可對解空間中的多個解進行同時搜索等方面。
(3)粒子群算法。該算法簡稱PSO,歸屬于進化算法的范疇,其原理與模擬退火算法極為相似。PSO以隨機解作為起點,通過不斷地迭代尋找最優解,實踐證明,PSO比遺傳算法的規則更加簡單,省去了交叉與變異過程,由此使其更容易實現,并且精度更高。
根據獨立任務的特點,結合對上述調度算法的分析,可以采用傳統算法中的回填算法或是啟發式算法中的粒子群算法,實現云計算系統獨立任務最優調度的目標。
2.2 關聯任務調度算法
在云計算系統中,關聯任務可以分為靜態和動態兩種類型,前者的執行與通信成本均為已知,而后者的這些條件則全部都是未知數,所以必須在系統運行時,才能進行調度決策。由于動態調度必須在運行的過程中完成,所以調度算法大多都是針對靜態調度任務。常用的有以下幾種:
2.2.1 基于表調度的算法
該算法包括兩個階段,在第一個階段時,會對任務進行調度優先級劃分,進而形成調度列表;在第二階段時,會按照優先級將表中的任務分配到虛擬機上執行,直至全部任務調度完畢為止。
2.2.2 基于聚類的算法
該算法會以映射的方式,將任務映射到集群中,由于集群不會受到數量的限制,所以可承載海量的任務。然后集群中的任務進行聚類,迭代前先合并類似的集群,當兩個任務被分配到同一個集群內時,可由一臺虛擬機完成任務執行。
在這兩種算法中,表調度的計算過程較為簡單,并且其各方面性能都較為優異,所以可將之作為關聯任務的主要調度算法。
3 結論
綜上所述,隨著云計算應用領域的不斷拓寬,用戶的使用需求隨之發生了一定的變化。為對各種不同的任務進行高效調度,應當加大對云計算調度算法的研究力度,除對現有的算法進行逐步改進和完善之外,還應結合云計算的特點,開發一些新的調度算法,以此來推動云計算的持續發展。
參考文獻
[1] 滕云.云計算下資源調度算法的節能研究[J].電腦知識與技術,2018(30).
[2] 柳興.移動云計算中的資源調度與節能問題研究[D].2015.
[3] 汪敏,汪正舟.實時服務框架設計于實現[J].指揮信息系統與技術,2017,8(02):36-40.
[4] 蘇淑霞.面向云計算的任務調度算法研究[J].安徽大學學報(自然科學版),2014,38(05):24-30.
轉載注明來源:http://www.hailuomaifang.com/1/view-14841840.htm