《An Experimental Comparison of Partitioning Strategies in Distributed Graph Processing》——論文筆記

ABSTRACT

在不同處理系統,應用,圖,運行環境下,分區策略選擇的問題。沒有單個的策略適用於所有環境,實驗表明分區策略取決於(1)輸入圖的度數分佈(2)應用程序的類型和持續時間(3)集羣大小。

1. INTRODUCTION

現在有各種各樣的圖,其規模很大,故出現了一些圖處理系統,可以編寫vertex-program。但在處理大圖之前,首先需要對圖進行劃分。
劃分對接下來的計算步驟會產生巨大的影響。爲了避免溝通成本一些系統採用“頂點最少”策略。但是如果對溝通成本估計過高,反過來,中間結果補全會耗費更長的時間。除了頂點複製的問題,還需要考慮負載均衡的問題。
圖劃分操作本身需要快速且有效率。現實世界中的圖大多遵循冪律分佈,因此有人採用頂點分割的分區技術。
表1
本文的主要貢獻:

  • 對比三個圖處理系統(PowerGraph, GraphX, PowerLyra)中的分區策略。
  • 對每個系統提供經驗規則幫助開發者找到合適的分區策略。
  • 將PowerGraph和GraphX中的分區策略引入到PowerLyra.
  • 對比所有系統的所有分區策略,並討論結果。

分區策略取決於三個要素:(1)輸入圖的度數分佈(2)應用程序的類型和持續時間(3)集羣大小。結果表明不同分區策略對處理時間,資源利用率影響很大。

2. SUMMARY OF RESULTS

對於PowerGraph,我們發現對具有低度分佈和大直徑的圖(如路網),基於啓發式的策略(即HDRF和Oblivious)表現(ingress&computation)更好。對於重尾分佈的圖如(社交網絡),Grid複製率較低,且ingress時間更短。但是對於冪律分佈的圖(如UK-web),兩個啓發式策略得到更高質量的分區(lower replication factors)但ingress時間更長。因此對於冪律圖Grid適合短期運行的任務,HDRF/Oblivious適合長期運行的工作。
對於PowerLyra,對於natural的應用程序,混合策略的效果較好。
Natural applications are defined as applications which Gather from one direction and Scatter in the other.
對於GraphX,不同分區策略分區所用時間差不多。Canonical Random works well with low degree graphs, and 2D edge partitioning with power-law graphs.
最後將所有的分區策略在PowerLyra中實現時,決策樹並不改變,非對稱隨機性比隨機性更差,最後發現CPU利用率並不適合作爲性能的指標。

3. BACKGROUND

3.1 The GAS Decomposition

Pregel模型是以頂點爲中心的計算模型,將計算步驟分爲多個超步。頂點見通訊通過傳遞信息的方式實現,被用於Giraph和GraphX系統中。
Gather-Apply-Scatter(GAS)和pregel模型類似是以頂點爲中心的計算模型。頂點計算被劃分爲迭代,每次迭代都包含Gather, Apply and Sactter步驟。Gather——收集相鄰邊和鄰居的信息,並用交換關聯聚合器聚合。Apply——接受收集和聚合的數據,更新本地狀態。Scatter——使用更新的狀態出發相鄰頂點值更新並激活它們進行下一次迭代。

3.2 Edge Cuts and Vertex Cuts

切分邊緣適用於具有很多低度節點的圖。
切分節點適用於具有一些高度節點的圖。
(貌似兩個環境並不互斥?)

3.3 Graph Applications

3.3.1 PageRank

對圖中的頂點進行排序的算法。

3.3.2 Weakly Connected Components

用標籤傳播識別圖形中所有弱連接的組件。

3.3.3 K-Core Decomposition

找到至少爲k度節點組成的子圖。

3.3.4 SSSP

Single Source Shortest Path.

3.3.5 Simple Coloring

給所有頂點着色,使相鄰頂點不具有相同顏色。

4. EXPERIMENTAL METHODOLOGY

4.1 Clusters

表2
對於PowerGraph和PowerLyra,在三個集羣上進行了實驗:(1)9臺機器的本地集羣,(2)16臺機器的EC2集羣(3)25臺機器的EC2集羣。對於GraphX,使用10臺機器的本地集羣。

4.2 Datasets

表3

4.3 Metrics

  • Ingress time:將圖裝載入內存的時間
  • Computation time:運行特定應用的時間,不包括ingress/partitioning tiome.
  • Replication factor:每個頂點的平均鏡像數。
  • System-wide resource usage:以1s爲間隔,測量內存消耗,CPU利用率和網絡使用情況。

5. POWERGRAPH

5.1 System Introduction

邊緣分割在冪律圖中表現不佳,所以採用頂點分割。

5.1.1 Vertex Replication Model

頂點切分會使負載均衡但導致了被切分定點的複製。頂點拷貝的總數和其本身成爲頂點的replication factor。

5.1.2 Computation Engine

主要說明GAS的各個步驟在被分割頂點上的實現,以及同步和異步引擎的區別。

5.2 Partition Strategies

5.2.1 Random

對邊的hash是它所連接頂點的函數,且不區分方向。隨機哈希分區好處有三個:1. 快速。2. 邊的分佈均勻。3. 高度並行化。但問題在於會產生大量的頂點拷貝。

5.2.2 Oblivious

基於貪心的啓發式策略,儘可能降低replication factor。
啓發式策略需要爲下一個階段發送先驗信息,因此不是併發。同時爲了效率,機器之間互相忽視。

5.2.3 Constrained

Constrained partitioning strategies hash edges, but restrict edge placement based on vertex adjacency in order to reduce the replication factor.爲每個頂點v附加約束集S(v),然後將邊(u,v)置於S(u)S(v) 的分區之一中。
Grid約束是機器v哈希的行和列中所有的機器的集合。
PDS完美差分集生成約束集。

5.2.4 HDRF

High-Degree Replicated First. 和oblivious類似, 但Oblivious只看分區大小,HDRF同時關注頂點的度和分區大小,優先複製高度的節點。

5.3 Experimental Setup

5.4 Experimental Results

5.4.1 Replication Factor and Performance

這裏寫圖片描述
這裏寫圖片描述
因爲着色任務在異步引擎工作,所以有時候會掛起,會花很長時間結束(Oblivious)或者中斷(HDRF)。在GAS處理任務時,每一步都與replication factor有關。可以看出replication factor是資源使用的可靠指標,所以用其比較分區策略。圖6顯示了對於所有圖和集羣PowerGraph分區策略的replication factor。
這裏寫圖片描述

5.4.2 Minimizing Replication Factor

因爲LiveJournal和Twitter的低度數據少於UK-web,所以Grid在前兩者上面表現最好,而HDRF/Oblivious針對低度圖的算法在UK-web表現的最好。所以HRDF/Oblivious適合於冪律圖和低度圖,Grid適合於重尾圖。

5.4.3 Partitioning Quality vs Partitioning Speed

這裏寫圖片描述

5.4.4 Picking a Strategy

這裏寫圖片描述

6 POWERLYRA

6.1 System Introduction

PowerLyra一個機遇PowerGraph的圖形分析引擎,旨在通過對高度和低度頂點執行差異化處理和分區,進一步解決冪律圖中偏斜分佈的問題。其作者認爲,將頂點切割應用於低度頂點可能會導致高通信和同步成本,對高度頂點應用邊緣切割導致負載不平衡和高爭用。所以PowerLyra採用混合的方式。提出兩種新的策略(1)Hybrid,一種基於隨機哈希的策略(2)Hybrid-Ginger,一種基於啓發式的策略。

6.2 Partitioning Strategies

包含PowerGraph的策略以及兩個混合策略。

6.2.1 Hybrid

Hybrid策略對高度節點實行頂點切分,低度節點實行邊切分,並對於有低度目標節點的邊哈希目標節點,有高度目標節點的邊哈希源節點。

6.2.2 Hybrid-Ginger

和上一個類似但是通過啓發式規則比Hybrid中低度節點的複製率更低。

6.3 Experimental Setup

6.4 Experimental Results

7. GRAPHX

7.1 System Introduction

GraphX是基於Apache Spark構建的分佈式圖形處理框架,可以讓用戶在利用Spark的數據流功能的情況下執行圖形處理。GraphX通過嵌入到Spark中的圖形處理API來解決圖形計算、複雜的join,以及優化等問題。
GraphX使用Spark中的Resilient Distributed Datasets(RDDs)存儲邊和點。RDDs通過譜系圖進行連接,並支持延遲計算和容錯。

7.2 Partitioning Strategies

7.2.1 Random and Canonical Random

兩個都哈希頂點ID進行分區,但是Canonical Random對於(u,v)和(v,u)一定分配到同一個分區中,但是Random不一定。這裏的Canonical Random類似於5.2.1中的random。

7.2.2 1D Edge Partitioning

哈希源點。和PowerLyra中的6.2.1中Hybrid策略中針對低度節點部分類似。

7.2.3 2D Edge Partitioning

類似5.2.3中PowerGraph中Grid。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章