資料儲存:大資料運算系統(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判斷是否收斂。