第一節 目標
假設給定 NetFlow Segments 檔案的分佈環境與一群可茲利用的計算節點 (Workers),
在遵循資料在地化 (Data Locality) 政策下,我們希望找出最佳的資料 (Segments)處理 分配給計算節點,達到計算節點間執行時間差異最小化,使得整體執行時間不會受到 執行效能差的計算節點所拖長。所謂檔案分佈環境指的是 NetFlow Data 原先已分散儲 存在這些計算節點的本地磁碟,假設檔案儲存的政策是:一份檔案例如會有三份儲存 (Replica)在計算叢集裡。對一個查詢(Query)而言,其關連檔案的所有儲存都會在尋 找最佳分配的演算法裡被納入考量。雖然計算節點彼此之間有網路連結,但在資料在 地化 (Data Locality) 政策下不希望資料檔案需經由網路傳輸到處理它的計算節點。因 此,所有與本查詢相關的檔案都必須儲存在被分配處理該檔案之計算節點的本地硬碟。
我們假設每個計算節點能力有其工作容量 (Capacity),基本上處理能力低的計算節 點會分配處理較少量的資料以避免成為查詢 (Query)執行完成之落後者 (Straggler)。也 就是這個問題需同時考慮、計算節點的處理容量以及與本查詢相關的資料所在位置,
希望找到一個檔案處理在計算節點分配的配置以達到最小化各節點執行完成時間差 異。
第二節 問題定義
根據以上要求,我們將問題制訂成一個作業研究(Operation Research)問題。此 問題包含五個假設,如下所示:
(1) 計算節點可以任意地被分配資料處理,並不限定處理某些資料。
(2) 資料可以任意的分配,並不限定在某計算節點上處理。
(3) 資料處理沒有先後順序的關係,彼此之間並不依賴互相的執行結果。
(4) 一個計算節點同時只能處理一個資料,也就是資料是以一條 Queue 的形 式在計算節點上等待。
(5) 資料的處理時間只與資料大小(Segment size)成正向線性關係,與計算節 點的執行效能沒有關係。
問題所定義的變數如表 1,表中最後三個是 Decision Variables。
26
表 1、Algorithm 1 定義之變數
Notation Definition
Q This query Q is given by user, specifying the time and space domains for the targeted data set.
The number of replicas, i.e. ,each segment file has
copies stored on the local disks of
workers.{W
The set of worker machines.N is the number of total workers while
N
w is the number of workers in which local disk it has a replica of{L
i, j A set of binary varibles indicating the location of Segments subject to Q{B
i, j The segment assignment. A set of binary variables such that
M
The total number of workers that have non-zero workload.}
27 函式是 Gini’s Mean Difference[18],所提出的方法不採用 Variance 做為目標函式有以下 幾點原因:
(1) 我們希望任兩個計算節點的工作量之間的差異最小化,Variance 描述的 是 整 體 工 作 量 的 變 異 程 度 , 計 算 只 有 考 慮 各 工 作 量 與 平 均 工 作 量 (Average Workload)的距離,而非工作量間的差距。
(2) 變異數的計算公式中
此公式的非線性程度比 Mean Difference 大。此外在[19]中也提到因為平 方關係對於距離平均工作量較近的工作量會給予較低的權重,反之給予 較高權重;而 Mean Difference 的計算方式則同等對待所有的工作量之間 的差距。
以下一一說明各限制式:
(1) 限制式 1 表示在 This Query 下的資料檔案一定都會被指派給一個且只有 一個計算節點處理,不會有重複指派的情況發生,又稱為 One-Worker-Only Assignment Constraint。
(2) 限制式 3 表示在 Replica Level 為𝛽的時候,也就是任意一個資料檔案
S
j Data Locality Constraint。(4) 限制式 6 表示該計算節點被分配到的總工作量不應該超過他本身所可以 承受的工作容量(上限值)。我們針對機器的本身運算能力以設定工作上 限值,這樣一來可以避免讓效能較差的計算節點負責太多的工作量導致 整體執行時間被拉長,又稱為 Worker Capacity Constraint。
28
(5) 限制式 7 表示有被分配到工作量的計算節點數量不可超過可以被分配工 作量的計算節點數量。
第三節 最小化計算節點執行時間之間差距的工作分配演算法
在此章節我們將分析本論文所欲解決的最小化各計算節點工作完成時間問題的計 算複雜度,以了解解題所需的計算成本;接著探討現有文獻上解題方式的優缺點;最 後則是參考現有的解題方式,納入問題本身的一些有用的知識提出一個較低計算複雜 度的經驗演算法(Heuristic Algorithm)。
3.1 複雜度分析
Cook [20] and Karp [21]對於決定性問題 (Decision Problem)提出問題複雜度的分類 方式,其將問題分類為 P、NP 或 NP-Complete。所謂一個決定性問題是指不論這些問 題內容為何,他們的解答只會是 Yes 或 No;被分類到 P 的問題是指可以使用決定性 (deterministic)圖靈機(Turning Machine)在多項式時間 (Polynomial time)內解決的問題;
NP 問題是指使用非決定性(non-deterministic)圖靈機在多項式時間內解決的問題。決定 性與非決定性圖靈機的差別在計算的每一時刻,根據當前的狀態以及輸入,若機器的 行為可唯一確定也就是只有一種執行方式可以做時則為決定性圖靈機,相反的若是有 很多行為可供選擇則為非決定性圖靈機。雖然 NP 問題可以使用非決定性圖靈機在多 項式時間內解決,但是非決定性圖靈機是在假設計算資源無限的情形下運作,實際上 這種機器並不存在,所以在資源有限的情況下,NP 問題並無法在多項式時間內解決。
NP
P
可以利用驗證解答的方式證明,因為任意屬於 P 類問題的解答可以在非決 定性圖靈機上執行相同的多項式演算法 (polynomial algorithm)驗證其正確性。但是NP
P
依 然 是 個 Open Question , 目 前 尚 無 能 夠 證 明 其 成 立 或 是 不 成 立 。 NP-Complete 是定義為 NP 問題中最難的一群,任意的 NP 問題都可以在多項式時間內約化(reduce)成一個 NP-Complete 問題。因此,一個決定性問題必須滿足其複雜度為 NP 以及可以被任意 NP 問題約化成的兩種條件才被稱呼 NP-Complete。因為目前已被證明 為 Complete 的問題大部分有已知解法,所以當我們把欲解決問題轉化成 NP-Complete 問題後就能直接利用現有解法來解決原本的 NP 問題。
而當某個問題只滿足 NP-Complete 問題兩個條件的第二個:可以被任意 NP 問題約 化成時,我們就稱為 NP-Hard 問題。那因為該問題有可能約化後依然是 NP 問題,如 果是這種狀況則表示這些問題等同 NP-Complete 問題,但約化後若不再是 NP 問題則表 示該問題比 NP 問題還難。故稱為 NP-Hard,代表這些問題至少比 NP 問題還難。
這種在多個計算節點間決定工作量的分配能否在各節點計算容量擁有上限值與成
29
本的情況下,找出可行分配的解答可歸屬於 Knapsack 問題,其複雜度為 NP-Complete。
本論文所探討的問題是一個找最佳化解的問題:除了找出可行的工作分配之外,此分 配還必須最佳化各節點執行時間差;因此理論上要找到最佳解,我們得嘗試所有可能 的工作分配在可能的計算節點組合上,這是一種 Combinatorial Optimization Problem,
已經在[21, 22]中證明就算這種問題經過簡化其複雜度依然為 NP-Hard,所以不可能在 多項式的時間找出最佳解。
在[23]此篇論文研究中考慮執行節點間工作(Task)執行之先後順序關係以及計算 節點間的通訊成本,目標是找出最小整體執行時間(Makespan)的工作規劃(Allocation) 與排程(Scheduling)。雖然與我們想要解決的問題並非全然相似,不過作者也是把問題 制訂成(Formulate)成一個 OR 問題後透過 MILP(Mixed Integer Linear Programming)方 法找到最佳解(Optimal Solution)。
MILP 是指一個 LP(Linear Programming)問題中存在一些整數變數(Integer Variables) 或二元變數(Binary Variables),所以稱為 Mixed Interger。基本上,在問題的描述裡二元 變數的值只會是零或一,通常可以用來表示工作有或沒有在某 Worker 上執行、工作可 不可以在某 Worker 上執行或是工作之間的先後順序關係。在我們的問題中因為有
}
{B
i, j 與{L
i, j}
這兩個二元變數的存在,所以我們可以利用 MILP 技巧來解決問題。MILP 擁有幾項優點。首先,它確實可以找出最佳解。此外,現成一般的解題軟體 (Solving Tools)亦支援 MILP 方法。但是因為其採用 Branch and Bound 的解題策略,因 此 MILP 的解題之指數時間的計算複雜度常導致找最佳解所需時間過長。
以本論文所欲解的最佳化問題為例,在 Branch and Bound 下的解題過程可以被視為 一棵深度為
N
s 的
元樹:每一層(Level)代表一筆資料的分配,該層代表該筆資料分 配狀況的二元變數的所有可行值。因為我們每筆資料有
份複本所以會有
個節點。解決 MILP 的過程就猶如由上 (Top) 往下 (Bottom) 一層一層地搜尋(Traverse)這棵 樹,當抵達葉節點時也就是找到一種分配的完成。因為這棵樹有
N
s 層(每一層代表 一筆檔案的分配處理);每層都有
個節點,因此所有可行解的分配方式會在這棵樹 的
Ns個葉節點(Leaf Node)。理論上我們得走過所有的葉節點然後選擇其中最好的分 配方式做為 MILP 的解。由以上我們可以知道可行解的個數與欲分配處理之檔案個數 數量成指數關係,因此,MILP 具有指數時間的時間複雜度。30
1
1
1
1
1
1
1 1 1