二、 相關研究與文獻探討
2.5 Scheduling
雲端運算的資源雖然是無上限,但是基於pay-as-you-go之服務模式,
使用者所租用之資源還是受限的,因此資源配置在雲端運算上長久以來被 廣泛的研究,期望能夠達到增進效能、降低複雜度或者是節省電源以達到 綠色運算等,利用不同的方法或演算法來達到不同的目的,然而資源配置 之問題屬於NP Problem,沒有一個演算法能適用於所有的情況,只能夠針 對某一類議題去探討。Vinothina, V, R et al.[11] 介紹了各種不同的資源配 置策略,講述了資源配置對於雲端運算之重要性,並且討論他們之間所面 臨的挑戰。同時,Vinothina, V, R et al.也將雲端上的資源配置做分類,如圖 7所示。雲端運算資源是”以量計價”,因此資源配置的最佳化對於消費者來 說,不僅能夠更加節省成本之外,且能很好的運用資源。一個好的資源配 置應避免的幾項要素,包括了當兩個應用程式在同一時間存取同一資源時 所產生的資源競爭,以及當資源有限或不足以供給有需求之應用程式形成 資源之缺乏,或是過度供給、供給不足等問題。
圖 7. 雲端運算之資源配置策略
17
Xiaohui Wei et al.[26]探討虛擬叢集(Virtual Cluster)之資源配置,提出 了Partial mapping之概念,利用網路拓譜的概念,將分散式架構上的計算節 點集合為一張無向圖,如圖 8所示,再根據演算法留住重要的link與nodes,
實現partial MAPPING,依照communication skeleton來作為資源配置之依據,
如圖 9所示,重要性較高的工作應該要優先被配置並且保證他們能擁有完 整的資源,避免其他的子工作影響到整體工作的執行。
圖 8. 虛擬叢集系統之資源配置
18
圖 9. Communication skeleton 之範例
Yu-Kwong Kwok et al.[27]利用動態的關鍵路徑來決定工作之間的關 係,優先配置關鍵路徑上之工作,最小化排程之長度。在配置工作時,優 先權是相當重要的,因此演算法會不斷計算所有尚未排程之工作的優先權,
並且選擇最高優先權之工作優先進行排程,最後提供最適合此工作之處理 器並配置給他運作,動態的去調整關鍵路徑與調配資源,且根據實體機器 之節點能夠最早開始執行時間以及最晚開始執行時間做為配置之依據,重 複去計算節點之優先權。
Menglan Hu et al.[28] 講述計算型工作大致上可被分類為三類:不可分 割(Indivisible Task)、模組化分割(Modularly Task)與任意分割(Arbitrarily Task),其中不可分割之工作只能在單一處理器上處理,而模組化分割可以 分散被多個處理器平行執行,但會存在溝通與同步之問題,任意分割之工 作則是可以分成任意大小之數量平行處理。排程策略主要將Deadlines作為 門檻值來決定不可分割工作與模組化分割之工作之排程,以最小化工作之 總執行時間。
19
Weijia Song et al. [14] 將資源配置的問題模擬為裝箱問題,其中箱子 為Server而每一台虛擬機器為將要被打包的物體,此文獻根據過去的統計 資料預估所有應用程式之資源需求量與所有實體機器之負載,基於資源需 求與綠色運算(Green computing),利用裝箱問題演算法,透過最佳化Server 數量動態配置資料中心之資源。
Zbynĕk Falt et al.[29]在非一致性記憶體系統(NUMA)上探討平行資料 串流系統之task scheduling。Numa 系統如圖 10所示,相較於對稱式多處理 器(SMP)之設計,NUMA系統每一個CPU能夠各自管理部分的系統記憶體,
將兩者放置同一節點,提高存取速度。Zbynĕk Falt et al.之排程策略主要考 慮ready tasks,將task盡量與父節點配置在一起,並且優先處理等待時間最 久的工作,此方法並沒有考慮到跨雲的communication time及critical path,
因此在跨雲環境上之排程效能並不佳,詳細數據將於實驗結果呈現。
圖 10. 非一致性記憶體系統示意圖
20