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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[OSDI 12] PoweGraph: 分布式图并行计算框架 学习总结

發布時間:2025/4/16 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [OSDI 12] PoweGraph: 分布式图并行计算框架 学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????????今天要講的文章是OSDI 2012年的一篇文章,PowerGraph:Distributed Graph-Parallel Computation on Natural Graphs。本文主要想解決的問題就是:現有的圖數據,如社交網絡、Web網頁等都是一種Power-law冪律圖的特征。所謂Power-law冪律圖就是指在圖數據中頂點的度數分配不均勻。有的圖頂點的度數很高,有的頂點度數很低。并且頂點度數呈現著冪律分布的特征,對于這種Power-law的圖數據,會存在很大的計算分配不均勻的特征。針對這個問題:PowerGraph分析了在冪律圖的特征情況下,采用vertex-cut劃分的策略。采用vertex-cut,切分成若干個Mirror頂點。利用Mirror頂點減少了高度頂點計算任務繁重的問題,并且采用vertex-cut劃分策略產生很少一部分的Mirror。

1.?Graphs are ubiquitous

????????我們都知道,圖在我們生活中是無所不在的。


????? ? 社交媒體、科學中分子結構關系、電商平臺的廣告推薦、網頁信息。圖是能夠將人、產品、想法、事實、興趣愛好之間的關系進行編碼,轉成一種結構進行存儲。圖的一個特點是:Big,數十億的點和邊以及豐富的元數據。各種場景下的信息都能轉成圖來表示,同時我們可以利用圖來進行數據挖掘和機器學習,比如 ,識別出有影響力的人和信息、社區發現、尋找產品和廣告的投放用戶、給有依賴關系的復雜數據構建模型等等這些都可以使用圖來完成。

2. Natural Graphs

????????從不同平臺或實際應用中產生的圖我們稱為:Natural Graphs。面對各種應用中如此海量的Natural Graphs,現有分布式的圖處理平臺處理性能還是比較低效的。作者選用Twitter數據集測試目前幾個主流分布式平臺在處理這種Natural Graph的性能,這里是利用PageRank算法每次迭代的時間作為橫軸,縱坐標是不同的分布式平臺,可以看到Hadoop和原生態的GraphLab的處理時間還是很長的,性能最好的是Piccolo,這里舉一個明星效應的例子,比如這里表示社交網絡中的一個子圖,中間紅色點表示某個用戶,旁邊黑點表示的是所有的粉絲,比如這里我們一個黑點表示100w的用戶,那么這個人可能就是obama,但像obama這樣擁有這么多粉絲的人是非常少的,大部分人粉絲只有大黑點中的一個點,幾百或者多者上千。這就是我們說的密率度分布圖的特點。它是Google的Pregel的C++實現 。


????? ? 現有的分布式圖處理系統在自然圖中的處理性能都很差。這是為什么會造成這個原因呢?下面我們來看一下自然圖到底有什么特征。

2.1?Power-Law Degree Distribution

????????下面我們來看一下,Natural Graph這種圖到底有什么特點,為什么大部分分布式處理系統性能都比較低效,PowerGraph在Natural Graph有如此好的性能。Natural Graphs的屬性特點是滿足密率度分布。下面我們來看下什么叫冪律度分布。?


????????簡單來說,冪律有兩個通俗的解釋,一個是“長尾”理論,只有少數明星是有很多人關注的,但是還有大部分人只有少部分人關注。長尾理論就是對冪律通俗化的解釋。 另外一個通俗解釋就是馬太效應,窮者越窮富者越富。 從這幅圖可以看出,只有一個鄰居的點的數目有超過10的8次方個,而僅有那1%的點卻占了整個圖50%的邊。這些點被稱為高緯度點。


????????這里舉一個明星效應的例子,比如這里表示社交網絡中的一個子圖,中間紅色點表示某個用戶,旁邊黑點表示的是所有的粉絲,比如這里我們一個黑點表示100w的用戶,那么這個人可能就是obama,但像obama這樣擁有這么多粉絲的人是非常少的,大部分人粉絲只有大黑點中的一個點,幾百或者多者上千。這就是我們說的密率度分布圖的特點。

????? ? 現有的大部分研究表明,對于這樣的冪律圖來說:Power-law 是很難去分區的。傳統的圖劃分方法對于Power-law 圖來說,執行圖算法會造成性能很差。比如書傳統的圖劃分方法:隨機劃分和edge-cut邊劃分。

3. PowerGraph Main Idea


????????PowerGraph中在計算時會切分高緯度點,被切分的點形成了一個新的抽象。但是在節點切分策略下要解決的一個問題是如何運行節點程序?在之前的邊切分策略下節點是單一的、完整的,節點擁有所有鄰居的信息,可以獨立完成節點程序的運算。但是在節點切分策略下,每個節點看到的只是部分的鄰居,無法完成整個計算。在節點切分策略下,分布在不同的CPU或者機器上的節點如何對其進行編程?下面將介紹兩種目前最具代表性的圖計算方法是如何對圖進行并行化抽象計算的。

4. Graph-Parallel Abstraction

圖并行化抽象目前流行的兩種方法是 :
——使用Message-Passing Pregel?

——使用Shared-Memory GraphLab


????????但對于我們前面提到的冪律圖,Pregel和GraphLab都不能很好地處理這種節點。最大的挑戰就是如何來處理這些高維度的點。最簡單也最低效的方法是順序處理這些邊,說白了就是遍歷所有點。第二種方法就是剛才提到的Pregel,它處理高緯度點的缺陷是單個worker要發送大量消息給鄰居節點。GraphLab的方法的缺點是會觸到圖的大部分(GraphLab)并且對于單臺機器邊的元數據太大,GraphLab共享狀態是異步執行,需要大量鎖 。Pregel同步執行但容易產生straggler,straggler可以理解為執行比較慢的節點(木桶的短板效應)。導致這些系統中存在這些問題主要原因是他們對圖的切分策略是采用邊分割的方式。下面我們來比較一下邊劃分和點劃分的區別。下面對比了Pregel、GraphLab和PowerGraph在運行PageRank算法上通信開銷和執行的時間,可以看出PowerGraph不僅通信開銷小而且運行時間短,對高緯度點有很強的健壯性。這時在人工合成的數據集上的一個性能。

5. Edge-Cut and Vertex-Cut


????????還有一種是點切分的方式,下面我們看下邊切分的方式和點切分方式有什么不同,?我們現在要將一個有4個頂點的圖存儲到3臺機器上,這三臺機器分別叫1,2,3。那么按照邊切分的方式,這且邊被切人后在3臺機器的分布如右邊圖。?從圖中可以看出,切分的過程中,總共有AB,BC,CD三條邊被切開,保存到3臺機器后,邊的總數目由原來的3條,變成了6條,多了一倍,外加5個節點副本。第二種方式是點切分方式,同樣是4個節點的圖,我們將B、C節點切分開來。存儲到3臺機器后,得到右邊這個圖,可以看出我們的邊的數目還是3臺,只多了兩個節點的副本。所以當邊的數量比節點數量大很多的情況下,這種兩種切分方式差異會更加明顯。

圖的切分問題又叫著圖分區。圖并行抽象的性能要依賴于圖的分區方式,?而我們的目標是?

—— 最小化通信?

——權衡圖計算和存儲開銷?


????????而前面提到的兩種流行的圖處理框架GraphLab和Pregel采用的都是邊切分方式的隨機Hash分區策略這種策略只保證了節點均勻分布在整個集群中,邊被切分成雙份分散在整個集群中。對于一般圖來說,邊的數量是要遠大于點的數量,因此按邊分區會帶來存儲和計算上的不均衡。 論文中總結了這種邊切分方式帶來的影響,給出了一個公式用來求被切的邊除以總的邊的均值,p表示隨機被分的機器數目,當p等于10時有90%的邊被切分,當p等于100時,有99%的邊會被切。 可以看出,當我們集群規模越大,按照邊來切分方式進行分區是非常劃不來的,圖中大部分邊會變切分開來。所以作者提出了PowerGraph:一種基于點劃分的分布式圖處理系統。

6. PowerGraph

????????這里總結一下目前對于專門的圖處理框架GraphLab和Pregel是不適合處理這種natural graphs。主要的兩大挑戰是高緯度的點和低質量的分區策略。本文提出的PowerGraph即是為了解決這2個問題而設計的,其中Power的意思就是冪律分布的意思。
下面就來介紹PowerGraph的詳細設計細節,PowerGraph的主要貢獻或者說創新點可歸結為以下兩點:
第一,提出了GAS計算模型,將高維度的點進行并行化

第二是采用點切分策略,來保證整個集群的均衡性,該策略對大量密率圖分區是非常高效的。

6.1 GAS Decomposition


????????下面以PageRank為例,頂點程序的通用模板大致如圖所示,第一步收集鄰居節點信息,第二步更新節點權值,如果還沒有收斂,觸發節點鄰居再次運行頂點程序。?這是一種通用的處理模板 。


PowerGraph提出了自己的一套計算模型,叫GAS分解。G是Gather的意思,A是Apply的意思,S是Scatter的意思。

GAS分解過程如下,

Gather:收集鄰居信息?

先收集同一臺機器的信息,然后對不同主機收集的信息進行匯總。得到最后的求和信息。

Apply:對中心點應用收集點的值,得到y一撇

Scatter(分散):更新鄰居點和邊,并且激活鄰居頂點,觸發鄰居點進行下一輪迭代。


????????那么就PowerGraph的GAP模型應用到RageRank算法中,是什么樣的過程?該公式中i表示目標節點,我們需要對這個節點求PageRank值,wij表示從j點到i點的權值,Gather階段,先求i所有鄰居節點的權值,用戶自定義一個sum操作,統計所有鄰居節點的權值之和。Apply階段更新i點的權值,利用上一階段的sum值加上一個偏置值,計算得到i的新的權值;Scatter階段如果i值被修改,就觸發相應的鄰居節點j重新計算。
????????下面用一個動畫演示PowerGraph是如何執行頂點程序。當頂點按點切分方式被分到4臺機器之后,在多個節點上指派一個為Master,其余的為Mirror。Mirror上可以運行Gather程序來收集所有鄰居的信息,并進行聚合計算(sum)后發送給Master。Master上的Gather程序收集這些結果,最終將這個結果應用到Apply程序上,得到新的節點狀態。然后通過Scatter程序將新的節點狀態廣播給各個Mirror,Mirror進而廣播給各個鄰居。

6.2?Constructing Vertex-Cuts

????????PowerGraph提出了一種均衡圖劃分方案,在減少計算中通信量的同時保證負載均衡。實際上通信開銷是和節點所跨的機器數目成線性關系,但點切分的方式可以最小化每個頂點所跨的機器數目。PowerGraph使用的不是邊切分,邊切分前面已經提到會同步大量的邊的信息。而是采用點切分,點切分只要同步一個點的節點信息。

????????論文中給出了一個新的理論(定理):對于任何邊切分我們都可以直接構造一個點切分,能夠嚴格減少通信和存儲開銷。下面將介紹該論文是如何來構造這個點分割。

論文提出了3種分配方式?
隨機邊分配?
貪婪協同邊分配?
非貪婪邊分配(Oblivious遺忘)

6.2.1?隨機的邊分配策略

????????第一種策略是隨機的邊放置策略,按照點切分的方式,隨機放置邊 。



下面分析邊這種隨機邊放置策略的性能

????????這里數據集選用的是Twitter數據集,有410w個頂點,14億條邊 。橫坐標是實際集群中機器的數目,縱坐標表示1個頂點期望跨了機器數目,關于這兩者的數量關系公式,作者在論文中給出了一個定理。藍色的線表示表示理論推測期望值,紅線是實際隨機邊放置的曲線圖??梢钥闯銎谕岛屠碚撝抵g基本是能夠match上的。所以針對隨即邊放置策略,就可以做到精確的估計內存和通信開銷。?

6.2.2 貪婪的點切分策略



????????第二種是貪婪的點切分方式,由于隨機切分下,盡管各個子圖基本均衡,但是子圖內部聯通性很差。因此PowerGraph提出的啟發式的貪婪算法,基本原理如下:?
????????如果新加進來的邊,它的某個節點已經存在于某臺機器上,就將該邊分到對應的機器上,比如在1號機器上已經存在AB這條邊,2號機器上已經存在BC這條邊,那門當一條新的邊AD在要加進來時,發現A節點已經在1號機器上,所以就將該邊放置到1號機器上。如果再來一條邊BE,發向兩臺機器上都存有B節點,這時候貪婪策略會選擇機器中分配的邊最少的機器進行分配。所以會將BE分配到2號機器,這里只是簡單的舉了個例子,論文中是用集合的表示方式將這種貪婪策略歸納了4種case,這里不詳細介紹,具體可以參考論文第8頁相關內容。

????????上面提到的貪婪策略,作者論文中稱之為De-randomiztion。de的含義這里因該是去除,與隨機化剛好是反義詞。De-randomization就是Greedy的含義,貪婪點切分能夠最小化機器所跨的機器數目。實際的貪婪的放置策略性能要比隨即放置策略要好。關于貪婪邊切分策略,作者給出了兩種實現方式:

????????第一種是協同邊放置策略,這需要維護一張全局u頂點放置的歷史紀錄表,在執行貪心切分之前都要去查詢這張表,在執行的過程中需要更新這張表。協同點切分的策略,它的特點是慢但點切分的質量高 ,

????????第二種方式是Oblivious的貪婪策略,它是一種近似的貪婪策略,不需要做全局的協同。貪婪算法的運行不依賴每一臺機器,不需要維護全局的記錄表,而是每臺機器自己維護這張表,不需要做機器間的通信。這種策略速度快,但切分質量比較低。關于這種方式,論文只用了一段話來描述,具體如何操作明白。

6.2.3 對比三種分區策略的性能

????????下面是對比這三種分區策略的性能,對比的是平均的機器跨度和構建時間。?
????????協同的貪婪分區算法平局機器跨度最小,但構建時間最長。而隨機策略構建時間短,但平局的機器跨度最大。而Oblivious的貪婪分區策略能夠在平局機器跨度和構建時間上獲得一個折中的性能。?

7. System Desgin

????整個PowerGraph的架構是這樣一個結構,最上層是PowerGraph 系統,它和GraphLab集成到一起,實現的接口是C++,利用HDFS進行數據的輸入和輸出,利用檢查點來實現容錯。


在這個系統上實現了許多經典算法,比如:?
Alternating Least Squares 交替最小二乘法?
Stochastic Gradient Descent隨機梯度下降?
SVD(Singular Value Decomposition)奇異值分解?
Statistical Inference統計推斷?
Loopy Belief Propagation(LBP)循環信度傳播算法?
Gibbs Sampling吉布斯采樣?
Image stitching圖像拼接?

LDA(Latent Dirichlet Allocation)隱含狄利克雷分布文檔主題生成模型?

????????下面對比了Pregel、GraphLab和PowerGraph在運行PageRank算法上通信開銷和執行的時間,可以看出PowerGraph不僅通信開銷小而且運行時間短,對高緯度點有很強的健壯性。這時在人工合成的數據集上的一個性能。

7. Summary



總結

以上是生活随笔為你收集整理的[OSDI 12] PoweGraph: 分布式图并行计算框架 学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 性感美女一区二区三区 | 婷婷爱五月 | av亚州| 亚洲第一a | 久久久久久久亚洲av无码 | 国产午夜一级一片免费播放 | 99这里只有 | 爱情岛论坛自拍亚洲品质极速最新章 | 丰满圆润老女人hd | 海角国产乱辈乱精品视频 | av色图在线 | 亚洲精品一区二区三区影院忠贞 | 青青青在线观看视频 | 中文字幕日韩人妻在线视频 | 亚洲成人播放器 | 嫩草影院菊竹影院 | 20日本xxxxxxxxx46 欧美激情一级 | 久久精品视频1 | 一级黄色毛毛片 | 啪啪日韩 | 国产一级二级三级在线观看 | 国产一区二区三区在线免费观看 | 97播播| 在线播放无码后入内射少妇 | 色性网| 在线观看av资源 | 成人a毛片久久免费播放 | c逼视频 | 狠狠操夜夜爽 | 亚洲乱亚洲乱妇 | 一区二区视频在线播放 | 婷婷免费视频 | 日韩一区二区三区在线免费观看 | 中日韩精品在线 | 亚洲日本中文 | 豆花视频在线播放 | 日韩资源站 | 国产69页| 亚洲乱视频 | 91精品国产综合久久久久 | 欧美另类亚洲 | 秋霞国产午夜精品免费视频 | 中文字幕在线观看网站 | 男插女青青影院 | 国产911在线观看 | 丰满人妻一区二区三区四区 | 九九热在线播放 | 国产精品无码av在线有声小说 | 日韩一片 | 销魂美女一区二区 | 亚洲第九页 | www香蕉| 欧美黑粗大 | 国产精品成人免费看片 | 日操操 | 日日麻批 | xxxx视频在线 | 正在播放木下凛凛88av | cao死你 | 日韩网站免费观看 | 三级不卡视频 | 日韩久久久 | 国产成人在线免费 | 熟妇人妻中文av无码 | 欧美大片免费 | 久久亚洲精品视频 | 中文字幕亚洲日本 | 欧美精品一 | 精品动漫一区二区三区在线观看 | 日本大尺度激情做爰hd | 台湾a级艳片潘金莲 | 懂色av蜜臀av粉嫩av分享吧最新章节 | 手机免费看av片 | 亚洲欧美精选 | 国产真实夫妇交换视频 | 伊人精品视频在线观看 | 国产激情视频一区二区三区 | 美女av一区二区 | 91精品导航 | 久草精品在线观看 | 91免费视频 | 久久密av | 亚洲欧洲自拍 | 国产sm调教一区二区 | 熟妇高潮精品一区二区三区 | 熟女少妇在线视频播放 | 天天舔天天操天天干 | 免费大片在线观看www | 三上悠亚 电影 | 一级片黑人 | 日韩视频免费观看高清完整版在线观看 | www.xxx在线观看 | 中文字幕 视频一区 | 午夜神马影院 | 午夜毛片| 国产福利资源 | 亚州三级 | 免费成人在线观看 | 69网址 |