1. 程式人生 > >資料儲存:大資料運算系統(2)--- 圖計算系統

資料儲存:大資料運算系統(2)--- 圖計算系統

目錄

一、同步圖計算

1.圖演算法

2.同步圖計算

3.系統實現

二、非同步圖計算

1.資料模型

2.計算過程

(本文為陳世敏老師課程筆記)

-------------------------------------------同步圖運算:訊息傳遞非同步圖運算:共享記憶體,可以立即看到完成的計算結果一、同步圖計算

1.圖演算法

  PageRank:隨機遊走模擬網頁瀏覽得到網頁重要度排名,從1/N初始化,直到公式收斂

 (1-d)/n是任意跳轉的概率,後面的鄰居通過超連結跳到他的概率。為了防止N很大時候精度不夠,公式兩邊乘以N,R‘=NR,R’初始化為   1 

2.同步圖計算

  +超步內頂點平行計算,步間全域性同步。

  +特點:BSP模型、基於頂點程式設計(每個頂點都呼叫computer函式:接收訊息->進行計算->傳送訊息)

  +結束:所有頂點處於非活躍態(初始所有頂點是活躍態,非活躍態的頂點可以轉變為活躍態)

3.系統實現

  GraphLite為例,運算在記憶體中實現

  超步開始master->worker(呼叫computer 收、算、發)->完成通知master->下一個超步.....

  初始In-message list為空->received list是上個超步發來的資訊,放入In-message list->computer

  Aggregator全域性統計量:本地副本->超步結束髮送到master->master 彙總->master傳送給worker

  容錯靠定期地把圖狀態寫入硬碟生成檢查點

二、非同步圖計算

1.資料模型

  Data graph G=(V, E)
  每個頂點可以有資料Dv
  每條邊可以有資料Du->v
  +全域性資料表(SDT, shared data table)
  SDT[key]  value
  可以定義全域性可見的資料

2.計算過程

  直接訪問記憶體進行,update修改立即可見

  DScopev = update (DScopev ;SDT)

  SDT是全域性資料表(SDT, shared data table),修改全域性可見

  三個一致性模型,規定了scope的範圍:

    full consistency:範圍到鄰居頂點可讀寫

    edage consistency:update不能寫鄰居頂點,可寫本頂點和臨邊

    vertext consistency:update只能寫本頂點,可讀臨邊資料

  Update 函式的 Scheduling策略:

  +同步呼叫

  +Round -robin :順序計算每個頂點,下一個頂點可以看到

  +FIFO:建立Task,按照Task順序

  +Prioritized :建立Task並指定優先順序

  sync全域性計算

3.Graplab

  以頂點為中心計算,非同步可制定不同scheduling策略,共享記憶體程式設計,需要一致性模型,全域性aggregate判斷是否收斂