日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GraphX与GraphLab、Pregel的对比

發布時間:2023/12/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GraphX与GraphLab、Pregel的对比 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分布式批同步BSP

Pregel、GraphLab、GraphX都是基于BSP(Bulk Synchronous Parallel)模式,即整體同步并行。一次計算過程由一系列全局超步組成,每一個超步由并發計算、通信和同步三個步驟組成。從垂直上看,一個程序由一系列串行的超步組成。從水平上看,在一個超步中,所有的進程并行執行局部計算。BSP最大的好處是編程簡單,但在某些情況下BSP運算的性能非常差,系統速度取決于最慢的計算任務,即木桶原理。Spark Graphx中也實現了Pregel的API。

Pregel

Pregel采用迭代的計算模型:在每一輪,每個頂點處理上一輪收到的消息,并發出消息給其它頂點,并更新自身狀態和拓撲結構等。算法是否能夠結束取決于是否所有的頂點都已經vote標識其自身已經達到halt狀態了。頂點通過將其自身的狀態設置成halt來表示它已經不再active。

Pregel框架的缺點:這個模型雖然簡單,那就是對于鄰居數很多的頂點,它需要處理的消息非常龐大,所以對于符合冪律分布的自然圖,這種計算模型下很容易發生假死或者崩潰。

GraphLab

GraphLab將數據抽象成Graph結構,將基于頂點切分的算法的執行過程抽象成Gather、Apply、Scatter三個步驟。如下:需要完成對V0鄰接頂點的求和計算,將頂點V0進行切分,邊關系以及鄰接點部署在兩臺處理器上,各臺機器上并行進行求和運算,然后通過master(藍色)頂點和mirror(橘紅色)頂點的通信完成最終的計算。

1.Gather階段,工作頂點的邊從連接頂點和自身收集數據。

2.Apply階段,mirror將gather階段計算的結果發送給master頂點,master進行匯總并結合上一步的頂點數據,進行進一步的計算,然后更新master的頂點數據,并同步給mirror。

3.Scatter階段,工作頂點更新完成之后,更新邊上的數據,并通知對其有依賴的鄰結頂點更新狀態。

由于gather/scatter函數是以單條邊為操作粒度,所以對于一個頂點的眾多鄰邊,可以分別由相應的節點獨立調用gather/scatter函數,從而避免Pregel模型的問題。

GraphX

GraphX公開了類似Pregel的操作,是Pregel和GraphLab抽象的一個融合。在GraphX中,操作者執行一系列的超步,在這些超步中,頂點從之前的超步中接收進入消息,為頂點屬性計算一個新的值,然后在以后的超步中發送消息到鄰居頂點。不像Pregel而更像GraphLab,消息通過邊triplet的一個函數被并行計算,消息的計算既會訪問源頂點特征也會訪問目的頂點特征。

此外,GraphX的優點還包括:

1.允許用戶把數據當做一個圖和一個集合(RDD),而不需要數據移動或者復制。

2.Spark GraphX可以無縫與Spark SQL、MLLib等結合,方便且高效地完成圖計算整套流水作業。

總結

以上是生活随笔為你收集整理的GraphX与GraphLab、Pregel的对比的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。