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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

十分钟了解分布式计算:GraphLab

發(fā)布時間:2025/3/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 十分钟了解分布式计算:GraphLab 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

GraphLab是一個面向大規(guī)模機器學習/圖計算的分布式內(nèi)存計算框架,由CMU在2009年開始的一個C++項目,這里的內(nèi)容是基于論文

Low, Yucheng, et al. "Distributed GraphLab: A Framework for Machine Learning in the Cloud" Proceedings of the VLDB Endowment 5.8 (2012)[ppt]

后續(xù)會介紹GraphLab加強版PowerGraph (v. 2.2)的內(nèi)容,并介紹其在Spark平臺上的克隆GraphX。

Graph計算的背景

  • Graph可以刻畫的范圍是很廣的,用戶和商品之間的關系是一個典型的二部圖,pagerank的random walk也是一張圖
  • Graph database(Neo4j,Titan,flockdb)是用于圖數(shù)據(jù)的存儲檢索,而涉及到復雜的Graph Processing,就適合用graphlab做。
  • Graph計算的特點

  • Dependency Graph:MapReduce對于大的data并行任務(Feature Extraction/Cross Validation)是適用的,但data并行系統(tǒng)很難刻畫data之間的依賴關系,而這一點在機器學習(Gibbs Sampling,變分法,PageRank,CoEM,Collaborative Filtering等)中非常重要。
  • Local Updates:在Graph并行系統(tǒng)中,一個結點的值只受相鄰結點的影響,因此可以根據(jù)局部值就可以做更新。而在data并行系統(tǒng)中是沒有Local Updates的概念的,local信息可以加快計算,不同local之間可以做并行。
  • Iterative Computation:和普通Map-reduce任務不同,圖計算天然涉及到迭代計算。更新結點a的時候,對其所有鄰居(包括鄰居結點b)map,再reduce所有鄰居的結果,用得到的值來update結點a的值。然后就可以用結點a的最新值去更新他的結點b了。
  • GraphLab框架

  • Graph Based Data Representation:GraphLab將圖切成若干子圖分布式存儲,其中ghost vertex是子圖之間的邊界點,其上存儲了鄰接結構以及remote數(shù)據(jù)的副本,子圖之間也是有通信的,因此disk數(shù)據(jù)共享做備份很困難。
  • Update Functions:采用的是Asynchronously Dynamic Update,這種動態(tài)計算的主要思想是根據(jù)vertex的priority更新,每臺機器上都有一個優(yōu)先隊列,每次迭代中如果當前vertex變化量不大的話就不再將該點的scope(一步可達的點)入隊了,ghost頂點不需要入隊。改進空間:可以用排隊論優(yōu)化。
  • Data consistency:需要保證Race-Free Code,如果計算overlap發(fā)生搶跑,就會產(chǎn)生一致性問題。GraphLab在data consistency這方面是最靈活的框架。Edge consistency的思想是one vertex apart的Update Functions才可以并行,而Overlapping regions是只讀的。
    此外還可以定制Full consistency(Stronger)和Vertex consistency(Weaker)這兩種一致性級別。
    Distributed Consistency問題有兩種解決辦法?
    1) 圖著色(算法復雜,并且可能有些顏色的patirion比較小影響效率)?
    2) Distributed Locking with pipelining(高效,Latency Hiding)
  • Fault tolerance:GraphLab在這方面做的還不是很好,主要是Chandy-Lamport的asynchronous snapshotting algorithm。

  • from: http://www.cnblogs.com/wei-li/p/GraphLab.html

    總結

    以上是生活随笔為你收集整理的十分钟了解分布式计算:GraphLab的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。