一周一论文(翻译)—— [PVLDB 12] Distributed GraphLab A Framework for Machine Learning 分布式机器学习图计算框架
摘要
????????雖然高級(jí)別數(shù)據(jù)并行框架,像MapReduce,簡化了大規(guī)模數(shù)據(jù)處理的設(shè)計(jì)和實(shí)現(xiàn)的系統(tǒng),他們沒有自然或有效地支持許多重要數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)算法并且導(dǎo)致學(xué)習(xí)系統(tǒng)效率低下。為了幫助填補(bǔ)這一重要空白,我們介紹了GraphLab框架,它自然表達(dá)異步的, 動(dòng)態(tài)的,并行圖計(jì)算,同時(shí)在共享內(nèi)存設(shè)置上確保數(shù)據(jù)一致性和實(shí)現(xiàn)高度的并行性能。在本文中,我們擴(kuò)展GraphLab框架到更具挑戰(zhàn)性的分布式環(huán)境中,在保持健壯的數(shù)據(jù)一致性。
????????我們開發(fā)了基于圖的擴(kuò)展,用線性管道鎖定和數(shù)據(jù)控制來減少網(wǎng)絡(luò)擁塞和減弱網(wǎng)絡(luò)延遲的影響。我們也介紹GraphLab容錯(cuò),這個(gè)容錯(cuò)使用了經(jīng)典的抽象Chandy-Lamport快照算法,并展示它如何能輕易利用實(shí)現(xiàn)的GraphLab抽象本身。最后,我們?cè)u(píng)估我們的分布式GraphLab框架,在Amazon EC2部署和展示1 - 2個(gè)數(shù)量級(jí)在Hadoop-based實(shí)現(xiàn)收益的性能。
1簡介
????????指數(shù)增長的機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘(MLDM,即Machine Learning and Data Mining)問題和日益成熟的MLDM技術(shù),越來越需要一個(gè)能夠在大型集群并行執(zhí)行MLDM算法的系統(tǒng)。同時(shí),云計(jì)算服務(wù)的可用性,比如Amazon EC2,提供按需獲得可以負(fù)擔(dān)的服務(wù)的承諾,這樣就沒有實(shí)質(zhì)性的大規(guī)模計(jì)算和存儲(chǔ)資源在前期投資上。不幸的是,設(shè)計(jì)、實(shí)施和調(diào)試分布式MLDM算法,需要充分利用云平臺(tái),可能是非常具有挑戰(zhàn)性的。這些需要MLDM專家去解決競爭、死鎖、分布式狀態(tài)和通信協(xié)議等問題,同時(shí)提出復(fù)雜的數(shù)學(xué)模型和算法。
????????然而,大規(guī)模計(jì)算和存儲(chǔ)資源的需求,推動(dòng)許多人[2、14、15,27,30,35]去開發(fā)新的并行和分布式針對(duì)單個(gè)模型和應(yīng)用程序的MLDM系統(tǒng)。這通常需要耗費(fèi)大量的時(shí)間和多余的精力,減緩了不同研究領(lǐng)域的進(jìn)展在反復(fù)解決相同的并行/分布式計(jì)算的問題上。因此, MLDM社區(qū)需要一個(gè)高級(jí)分布式抽象概念,異步的,動(dòng)態(tài)的,并行圖計(jì)算中發(fā)現(xiàn)許多MLDM應(yīng)用程序而隱藏并行/分布式系統(tǒng)設(shè)計(jì)的復(fù)雜性。不幸的是,現(xiàn)有高級(jí)并行抽象(如MapReduce[8、9],Dryad[19]和Pregel[25])不支持這些關(guān)鍵屬性。為了幫助填補(bǔ)這一空白,我們引入了[24] GraphLab抽象, 在共享內(nèi)存設(shè)置情況下實(shí)現(xiàn)異步的,動(dòng)態(tài)的,并行圖計(jì)算的目標(biāo)。
????????在本文中,我們擴(kuò)展了多核GraphLab系統(tǒng)來適用分布式環(huán)境和提供了一個(gè)分布式的正式描述執(zhí)行模型。然后,我們探索幾種方法來實(shí)現(xiàn)一個(gè)高效的、嚴(yán)格的滿足一致性要求的分布式執(zhí)行模型。為達(dá)到這一目標(biāo),我們用數(shù)據(jù)控制來減少網(wǎng)絡(luò)擁塞和用線性分布式鎖減輕網(wǎng)絡(luò)延遲的影響。為解決數(shù)據(jù)本地化和入口的挑戰(zhàn),我們引入了原子圖(atom),迅速把圖結(jié)構(gòu)數(shù)據(jù)放到分布式環(huán)境中。我們還對(duì)GraphLab框架添加容錯(cuò)通過調(diào)整經(jīng)典的Chandy-Lamport[6]快照算法和證明如何簡單在GraphLab系統(tǒng)實(shí)現(xiàn)。
????????我們進(jìn)行一個(gè)全面的性能分析在優(yōu)化的c++實(shí)現(xiàn)上,通過亞馬遜彈性云計(jì)算服務(wù)(EC2)。結(jié)果表明,應(yīng)用程序創(chuàng)建使用GraphLab可以等效Hadoop / MapReduce[9]實(shí)現(xiàn)和匹配的性能構(gòu)造的MPI實(shí)現(xiàn)。我們的主要貢獻(xiàn)有下面幾個(gè)::
?一個(gè)概要有關(guān)MLDM算法的常見屬性以及現(xiàn)有的大型框架的局限性。(第2節(jié))
?一個(gè)修改版本有關(guān)在分布式環(huán)境中GraphLab理論和執(zhí)行模型。(第3節(jié))
?兩種截然不同的方法實(shí)現(xiàn)分布式執(zhí)行模型(第4節(jié)):
? ??染色引擎:使用圖著色達(dá)到一致高效按順序執(zhí)行的靜態(tài)表。
鎖定引擎:使用管道線性分布式鎖和隱藏延遲,支持動(dòng)態(tài)優(yōu)先執(zhí)行
?通過兩個(gè)快照的容錯(cuò)方案。(第4.3節(jié))
?三個(gè)先進(jìn)的機(jī)器學(xué)習(xí)算法在分布式GraphLab的高層實(shí)現(xiàn)。(第5節(jié))
?一個(gè)廣泛評(píng)估分布式GraphLab使用512處理器(64節(jié)點(diǎn))EC2集群,包括比較Hadoop,Pregel,MPI的實(shí)現(xiàn)。(第5節(jié))
2MLDM算法性能
????????在本節(jié)中,我們描述了幾個(gè)關(guān)鍵有效的屬性有關(guān)大規(guī)模并行通過GraphLab解決的MLDM系統(tǒng) [24]以及其他并行框架無法解決這些屬性。這些屬性和并行框架的概要在表1中可以找到。
????????圖的結(jié)構(gòu)計(jì)算:許多在MLDM上最新進(jìn)展都集中在依據(jù)數(shù)據(jù)的依賴關(guān)系建模上。通過數(shù)據(jù)依賴建模,我們能夠提取更多的信號(hào)從非結(jié)構(gòu)化的數(shù)據(jù)。例如,根據(jù)依賴關(guān)系的建模,類似于購物者允許我們做出產(chǎn)品推薦比孤立地對(duì)待顧客要更好。不幸的是,像MapReduce一樣的數(shù)據(jù)并行[9]一般不適合通常需要更先進(jìn)MLDM算法的依賴計(jì)算。雖然它通常是可能的映射算法與計(jì)算依賴MapReduce概念,由此產(chǎn)生的轉(zhuǎn)換可以挑戰(zhàn)和可能會(huì)引入大量的低效率。
????????因此,圖并行框架最近成為一個(gè)趨勢,比如Pregel[25]和GraphLab[24] ,能夠自然地表達(dá)計(jì)算依賴關(guān)系。這些框架采用以點(diǎn)為中心的模型,計(jì)算被定義在運(yùn)行每個(gè)頂點(diǎn)的內(nèi)核上。例如,Pregel批量同步消息傳遞抽象,通過消息傳遞進(jìn)行頂點(diǎn)溝通。另一方面,GraphLab順序共享內(nèi)存框架,每個(gè)頂點(diǎn)可以讀和寫在相鄰的頂點(diǎn)和邊的數(shù)據(jù)。GraphLab運(yùn)行狀態(tài)是負(fù)責(zé)確保一致性的并行執(zhí)行。因此, GraphLab通過釋放用戶集中在線性計(jì)算而不是并行移動(dòng)的數(shù)據(jù)(例如,消息傳遞),簡化了設(shè)計(jì)和實(shí)現(xiàn)圖并行算法。
????????異步迭代計(jì)算:許多重要MLDM算法迭代更新大量的參數(shù),因?yàn)闈撛诘膱D結(jié)構(gòu),參數(shù)更新(在頂點(diǎn)或邊)取決于(通過圖鄰接結(jié)構(gòu)) 其他參數(shù)的值。同步更新使用以前的時(shí)間步的參數(shù)值作為輸入,更新所有參數(shù)(并行),跟同步系統(tǒng)對(duì)比,異步系統(tǒng)使用最新更新的參數(shù)值作為輸入。因此,異步系統(tǒng)為許多MLDM算法提供了便利。例如,線性系統(tǒng)(常見的許多MLDM算法)已被證明,通過異步計(jì)算,收斂會(huì)更快解決 [4]。此外,還有很多其他的情況下(比如置信傳播[13],期望最大化[28],和隨機(jī)優(yōu)化[35,34]),異步的程序被經(jīng)驗(yàn)性的顯著表現(xiàn)同步過程。在圖1(a),我們演示如何異步的計(jì)算可以大大加快收斂網(wǎng)頁排名PageRank。
????????同步計(jì)算會(huì)導(dǎo)致昂貴的性能損失,因?yàn)槊總€(gè)階段的運(yùn)行時(shí)是取決于最慢的機(jī)器。最慢的機(jī)器的表現(xiàn)不佳可能由多種因素引起:包括負(fù)載和網(wǎng)絡(luò)失衡,硬件變化和多租戶(關(guān)注云服務(wù))。即使是在典型的集群設(shè)置里,每個(gè)計(jì)算節(jié)點(diǎn)也可以提供其他服務(wù)(如分布式文件系統(tǒng))。在利用這些服務(wù)的失衡問題將導(dǎo)致大量的其他服務(wù)性能損失,如果使用同步計(jì)算的話。
????????此外,在復(fù)雜性上的轉(zhuǎn)變和單個(gè)頂點(diǎn)內(nèi)核的收斂在執(zhí)行過程中可能產(chǎn)生額外的變化,即使是均勻分區(qū)圖。舉個(gè)例子,自然圖形中遇到現(xiàn)實(shí)世界的應(yīng)用——冪律分布圖從而導(dǎo)致高度傾斜的運(yùn)行時(shí)間,即使是隨機(jī)分區(qū)[36]。此外,實(shí)際工作所需的每個(gè)頂點(diǎn)可能依賴于數(shù)據(jù)特定的方式(如局部收斂速度)。
????????雖然框架基于批量數(shù)據(jù)處理,如MapReduce [9]和Dryad [19],沒有被設(shè)計(jì)應(yīng)用于迭代計(jì)算,最近的項(xiàng)目如Spark [38]擴(kuò)展了MapReduce和其他數(shù)據(jù)并行框架的迭代設(shè)置。然而,這些框架仍然不支持異步計(jì)算。模塊同步并行(BSP)框架如Pregel[25], Piccolo [33],BPGL[16]不自然地表達(dá)異步性。另一方面,共享內(nèi)存GraphLab框架被設(shè)計(jì)成有效自然地表達(dá)對(duì)于常見的先進(jìn)的MLDM算法的異步迭代。
????????動(dòng)態(tài)計(jì)算:在許多MLDM算法,迭代計(jì)算的收斂不對(duì)稱。例如,在參數(shù)優(yōu)化上,往往很快就會(huì)大量的參數(shù)在幾個(gè)迭代中收斂,而其余的參數(shù)在許多迭代收斂中非常緩慢[11,10]。在圖1(b),我們繪制了需要收斂的PageRank的分布式更新的描述。令人驚訝的是,大多數(shù)所需的頂點(diǎn)一個(gè)更新,只有約3%的頂點(diǎn)需要超過10次以上更新。另外,優(yōu)先計(jì)算可以進(jìn)一步加速收斂(Zhang et al [39])各種各樣的圖算法包括PageRank。如果我們平等且經(jīng)常更新所有參數(shù),我們浪費(fèi)大量時(shí)間在對(duì)已經(jīng)有效收斂的參數(shù)的重復(fù)計(jì)算上。相反,通過早期計(jì)算在更具挑戰(zhàn)性的參數(shù),我們可以加速收斂。在圖1(c),我們實(shí)證證明動(dòng)態(tài)調(diào)度在暴力的信息傳播中(一個(gè)流行MLDM算法)如何加速收斂。
????????好幾個(gè)最近的框架已經(jīng)可以建立動(dòng)態(tài)計(jì)算的表單。例如,Pregel[25]支持有限形式動(dòng)態(tài)計(jì)算,通過允許一些頂點(diǎn)在每個(gè)超級(jí)步上跳過計(jì)算。另一些框架比如Pearce [32]和GraphLab允許用戶自適應(yīng)優(yōu)化計(jì)算。雖然Pregel和GraphLab支持動(dòng)態(tài)計(jì)算,只有GraphLab允許優(yōu)先級(jí)以及從相鄰的頂點(diǎn)拉取信息的自適應(yīng)的能力 (詳細(xì)信息見3.2節(jié))。在本文中,我們簡化一些原始GraphLab[24]中描述的調(diào)度需求,使有效的分布式FIFO和優(yōu)先級(jí)調(diào)度。
????????可串行性:通過確保所有并行執(zhí)行的方式保證等價(jià)的順序執(zhí)行,可串行性消除了許多挑戰(zhàn),這些挑戰(zhàn)與設(shè)計(jì)、實(shí)現(xiàn)和測試MLDM算法有關(guān)。此外,許多算法收斂更快,如果能保證可串行性,有些甚至需要保證可串行的正確性。例如,動(dòng)態(tài)ALS(5.1節(jié))是不穩(wěn)定的當(dāng)允許競爭時(shí)(圖1(d))。Gibbs抽樣,一個(gè)流行的MLDM算法,就需要可串行性統(tǒng)計(jì)的正確性。
?
????????一個(gè)執(zhí)行序列化計(jì)算的框架消除了并發(fā)帶來的復(fù)雜性,使MLDM專家集中在算法和模型設(shè)計(jì)上。在帶有骯臟數(shù)據(jù)造成數(shù)據(jù)競爭的并發(fā)程序中調(diào)試數(shù)學(xué)代碼是困難和費(fèi)時(shí)的。令人驚訝的是,許多異步框架喜歡[32] 確??纱行?#xff0c;或者像Piccolo [33],只提供從數(shù)據(jù)競爭中恢復(fù)的基本機(jī)制。GraphLab支持范圍廣泛的一致性設(shè)置,允許一個(gè)程序選擇需要正確性的一致性的級(jí)別。在第4節(jié),我們描述了幾個(gè)我們開發(fā)的在分布式配置下的可串行性技術(shù)。
3Graphlab框架的組成部分
????????GraphLab框架由三個(gè)主要部分組成,數(shù)據(jù)圖,更新函數(shù)和同步操作。數(shù)據(jù)圖(第3.1節(jié))代表用戶修改的程序狀態(tài),和提供用戶定義的可變數(shù)據(jù)和稀疏編碼的計(jì)算依賴關(guān)系(邊)。更新函數(shù)(第3.2節(jié))代表了用戶在數(shù)據(jù)圖上的計(jì)算和操作,通過在作用域上轉(zhuǎn)換數(shù)據(jù)。最后,同步操作(第3.5節(jié))同時(shí)維護(hù)全局變量。為了更全面的認(rèn)識(shí)GraphLab框架在一個(gè)具體的問題上的應(yīng)用,我們將PageRank算法[31]作為一個(gè)運(yùn)行的例子。
示例1(PAGERANK)。PageRank算法遞歸定義網(wǎng)頁的排名v:
????????依據(jù)權(quán)重wu,v的排名 R(u) 的頁面 u 鏈接到 v作為隨機(jī)跳到這個(gè)頁面的概率。這個(gè)PageRank算法會(huì)收斂到一個(gè)值直到收斂的改變非常小為止。
3.1數(shù)據(jù)圖
????????GraphLab框架存儲(chǔ)單向圖的程序狀態(tài)叫做數(shù)據(jù)圖。數(shù)據(jù)圖G =(V,E,D)是一個(gè)容器,用來管理我們用戶定義的數(shù)據(jù)D。我們使用術(shù)語data引用模型參數(shù),算法的狀態(tài),甚至統(tǒng)計(jì)數(shù)據(jù)。用戶可以關(guān)聯(lián)任意數(shù)據(jù)作為在圖上的每個(gè)點(diǎn)和邊。然而,如果GraphLab框架不是依賴在邊的方向,我們也使用Du v表示數(shù)據(jù)在雙向邊。最后,圖數(shù)據(jù)是可變的,D的數(shù)據(jù)結(jié)構(gòu)是靜態(tài)的,在執(zhí)行過程中不能改變。
????????示例2(PAGERANK:例1)。數(shù)據(jù)圖是直接的從網(wǎng)上獲得的圖,每個(gè)點(diǎn)對(duì)應(yīng)一個(gè)網(wǎng)頁,每個(gè)邊代表一個(gè)鏈接。頂點(diǎn)數(shù)據(jù)Dv存儲(chǔ)R(v),當(dāng)前估計(jì)的PageRank,和邊的數(shù)據(jù)Wu,v表達(dá)單向的鏈接權(quán)重。
3.2更新函數(shù)
????????計(jì)算方式被編碼在GraphLab框架的更新函數(shù)中。一個(gè)更新函數(shù)是一個(gè)無狀態(tài)的過程,這個(gè)過程修改一個(gè)頂點(diǎn)作用域內(nèi)的數(shù)據(jù)和調(diào)度未來執(zhí)行在其他頂點(diǎn)上的更新函數(shù)。一個(gè)頂點(diǎn)v的作用域(用Sv表示)是存儲(chǔ)在v上的數(shù)據(jù),以及數(shù)據(jù)存儲(chǔ)的所有相鄰點(diǎn)和相鄰邊(圖2(a))。
????????GraphLab更新函數(shù)把一個(gè)點(diǎn)v和作用域Sv作為輸入,并返回作用域內(nèi)數(shù)據(jù)的新版本——頂點(diǎn)的集合T。
????????在執(zhí)行更新函數(shù)后,在Sv上的修改數(shù)據(jù)會(huì)被寫回到數(shù)據(jù)圖。頂點(diǎn)集T的每個(gè)頂點(diǎn)u最終更新執(zhí)行為函數(shù)f(u,Su)依據(jù)執(zhí)行語義描述(在后面的3.3節(jié))。
????????GraphLab允許用戶定義更新功能,而不是采用消息傳遞或數(shù)據(jù)流模型[19,25],完全自由地來讀和寫任何相鄰的點(diǎn)和邊。這簡化了用戶代碼并且消除了用戶的移動(dòng)數(shù)據(jù)的需求。通過控制所返回在T中的接著要執(zhí)行的頂點(diǎn),GraphLab更新函數(shù)可以有效地表達(dá)自適應(yīng)計(jì)算。舉個(gè)例子,一個(gè)更新函數(shù)可以選擇返回(調(diào)度) 鄰接的點(diǎn),只有當(dāng)這些點(diǎn)做出了對(duì)本地?cái)?shù)據(jù)實(shí)質(zhì)性改變。
????????有一個(gè)重要的區(qū)別在Pregel和GraphLab之間,動(dòng)態(tài)計(jì)算是如何表達(dá)的。GraphLab從數(shù)據(jù)的移動(dòng)中分離了未來計(jì)算的調(diào)度。作為結(jié)果,GraphLab更新函數(shù)可以訪問數(shù)據(jù)在相鄰的頂點(diǎn),即使相鄰頂點(diǎn)沒有調(diào)用當(dāng)前的更新。相反,Pregel更新函數(shù)通過消息初始化并且只能訪問在消息中的數(shù)據(jù),限制了所能表達(dá)的內(nèi)容。例如,動(dòng)態(tài)PageRank是很困難的表達(dá)在Pregel上, 計(jì)算給定頁面PageRank值需要的所有相鄰的PageRank值,即使所有相鄰的頁面最近的一些相鄰的頁面并沒有改變。因此,發(fā)送數(shù)據(jù) (PageRank值)給相鄰的頂點(diǎn)的決定不能由發(fā)送頂點(diǎn)來做出(根據(jù)Pregel的要求),但必須由接收頂點(diǎn)決定。GraphLab,自然表示了抽取模型,由于相鄰頂點(diǎn)只負(fù)責(zé)調(diào)度和更新函數(shù),可以直接讀取相鄰定點(diǎn)的值,即使他們沒有改變頂點(diǎn)值。
????????示例3(PAGERANK:例1)。PageRank的更新函數(shù)計(jì)算了當(dāng)前相鄰頂點(diǎn)的加權(quán)和,和分配它作為當(dāng)前頂點(diǎn)的排名。該算法自適應(yīng): 鄰居被調(diào)度更新只有在當(dāng)前頂點(diǎn)的值變化超過一個(gè)預(yù)定義的閾值。
3.3GraphLab執(zhí)行模型
????????GraphLab執(zhí)行模型,提出了(在Alg.2)遵循簡單的單回路的語義。GraphLab框架的輸入包括數(shù)據(jù)圖G =(V,E,D), 一個(gè)更新函數(shù),一個(gè)將被執(zhí)行初始頂點(diǎn)集合。當(dāng)有頂點(diǎn)在T,該算法選擇(第1行)和執(zhí)行(第2行) 頂點(diǎn),添加任何新的頂點(diǎn)回到T(第3行)。重復(fù)的頂點(diǎn)被忽略。最后數(shù)據(jù)圖和全局值在完成后返回給用戶。
????????為了更有效的分布式執(zhí)行,我們降低了執(zhí)行共享內(nèi)存GraphLab框架的要求,并且允許GraphLab運(yùn)行時(shí)確定最佳的頂點(diǎn)執(zhí)行順序。例如,RemoveNext(T) 可以選擇返回依照最小化網(wǎng)絡(luò)溝通或延遲的順序來執(zhí)行頂點(diǎn)(見第4.2.2節(jié))。唯一強(qiáng)加在GraphLab框架的要求是所有T中的頂點(diǎn)最終都要被執(zhí)行。GraphLab框架允許用戶指定優(yōu)先級(jí)對(duì)在T中的頂點(diǎn),所以許多MLDM應(yīng)用程序從優(yōu)先級(jí)受益。GraphLab運(yùn)行時(shí)可能會(huì)使用這些優(yōu)先級(jí)結(jié)合系統(tǒng)級(jí)目標(biāo)來優(yōu)化頂點(diǎn)的執(zhí)行順序。
3.4確??纱行?/span>
????????????GraphLab框架提供了一個(gè)豐富的序列化模型,這個(gè)模型通過允許多個(gè)處理器上對(duì)相似的圖執(zhí)行相同的循環(huán)操作,可以同時(shí)刪除和操作不同的頂點(diǎn)的方式實(shí)現(xiàn)自動(dòng)轉(zhuǎn)換為并行執(zhí)行。為了保留順序執(zhí)行的語義,我們必須確保重疊計(jì)算并不是同時(shí)運(yùn)行的。我們介紹幾個(gè)一致性模型,允許運(yùn)行時(shí)優(yōu)化并行執(zhí)行,同時(shí)保持可串行性。
????????GraphLab運(yùn)行時(shí)確保序列化執(zhí)行。一個(gè)序列化執(zhí)行意味著存在一個(gè)類似的串行執(zhí)行的更新函數(shù)的調(diào)度,并且更新函數(shù)在數(shù)據(jù)圖上產(chǎn)生相同的值。通過確??纱行?#xff0c; GraphLab簡化了在分布式計(jì)算環(huán)境下有關(guān)高異步的動(dòng)態(tài)計(jì)算的演算。
????????一個(gè)實(shí)現(xiàn)可串行性的簡單方法是確保同時(shí)執(zhí)行的更新函數(shù)作用域不重疊。在[24]我們稱之為完全一致性模型(見圖2(b))。然而,完全一致性同時(shí)限制了潛在的并行性,執(zhí)行更新函數(shù)必須至少兩個(gè)頂點(diǎn)(見圖2(c))。然而,對(duì)于許多機(jī)器學(xué)習(xí)算法,更新功能不需要完整的讀/寫訪問所有的數(shù)據(jù)作用域的權(quán)限。例如,PageRank更新只需要讀訪問邊和相鄰的頂點(diǎn)的權(quán)限。為了提供更大的并行性,同時(shí)保留可串行性,GraphLab 定義了邊一致性模型。邊一致性模型確保每個(gè)更新函數(shù)獨(dú)占讀寫訪問頂點(diǎn)和相鄰的邊,但只讀訪問相鄰的點(diǎn)(圖2(b))。因此,邊緣一致性模型也在不斷增加并行性,通過允許更新函數(shù)使用少量重疊作用域來安全并行運(yùn)行(見圖2(c))。最后,點(diǎn)一致性模型允許并行運(yùn)行,所有更新功能提供最大的并行性。
3.5同步操作和全局值
????????在許多MLDM算法中,需要保證全局統(tǒng)計(jì)的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)圖上。例如,許多統(tǒng)計(jì)推斷算法要求跟蹤全局收斂性的評(píng)估值。為了解決這種需求,GraphLab框架定義了全局值,這個(gè)值通過更新函數(shù)讀,但都使用同步操作寫。類似于Pregel的聚集值,同步操作是一個(gè)關(guān)聯(lián)交換的和:
????????在所有的范圍定義圖。與Pregel不同的是,同步操作引入了一個(gè)終結(jié)階段, Finalize (·),來支持任務(wù),如標(biāo)準(zhǔn)化,在MLDM算法中相當(dāng)常見。與Pregel的聚合值在超級(jí)步后運(yùn)行相比,GraphLab的同步操作能夠連續(xù)運(yùn)行在保持更新的全局值的背景上。
????????由于每個(gè)更新函數(shù)可以訪問全局值,確保同步操作的可串行性對(duì)更新函數(shù)是費(fèi)資源的,一般會(huì)需要同步和停止所有計(jì)算。正如GraphLab有多個(gè)一致性水平更新函數(shù),我們同樣提供一致和不一致的同步計(jì)算的選擇。
4.分布式GRAPHLAB設(shè)計(jì)
????????在本節(jié)中,我們擴(kuò)展了共享內(nèi)存系統(tǒng)GraphLab框架的設(shè)計(jì)到更具挑戰(zhàn)性的分布式的環(huán)境,并且討論實(shí)現(xiàn)這一目標(biāo)所需的技術(shù)。分布式設(shè)計(jì)的概述被展示在圖5(a)。由于固有的隨機(jī)內(nèi)存訪問模仿了常見的動(dòng)態(tài)異步圖算法,我們關(guān)注分布式內(nèi)存設(shè)定,整個(gè)圖的需求和所有駐留在RAM中的程序狀態(tài)。我們的分布式實(shí)現(xiàn)是用c++寫的,擴(kuò)展了原始開源共享內(nèi)存GraphLab的實(shí)現(xiàn)。
4.1分布式數(shù)據(jù)圖
????????有效地實(shí)現(xiàn)分布環(huán)境的數(shù)據(jù)圖需要平衡計(jì)算、通信和存儲(chǔ)。因此,我們需要構(gòu)建平衡數(shù)據(jù)的分區(qū)圖,保證最小化的邊的數(shù)量介于機(jī)器之間。因?yàn)樵骗h(huán)境可以使用不同預(yù)算和性能要求的集群,我們必須能夠迅速加載數(shù)據(jù)圖在不同大小的云部署上。為了解決這些挑戰(zhàn),我們開發(fā)了一個(gè)可以在任意的集群大小有效負(fù)載平衡的基于雙相分塊的圖表示法。
????????數(shù)據(jù)圖使用指定作用域的方法被初始化為覆蓋分區(qū) (如平面嵌入),或者通過使用一個(gè)分布式圖分區(qū)探索式(如ParMetis[21],隨機(jī)散列)分成k個(gè)部分,這k個(gè)部分遠(yuǎn)遠(yuǎn)大于機(jī)器的數(shù)量。每一個(gè)部分,稱為一個(gè)原子,在分布式存儲(chǔ)系統(tǒng)中存儲(chǔ)作為一個(gè)單獨(dú)的文件(如HDFS,Amazon S3)。每個(gè)原子文件是一個(gè)簡單的二進(jìn)制壓縮圖,包含生成加點(diǎn)和加邊的命令。此外,每個(gè)原子存儲(chǔ)關(guān)于虛擬點(diǎn)的信息: 與分區(qū)邊界相鄰的頂點(diǎn)和邊的集合。這k個(gè)原子連接的結(jié)構(gòu)和文件位置存儲(chǔ)為一個(gè)原子索引文件中,作為與k 個(gè)頂點(diǎn)(對(duì)應(yīng)原子)和邊通過連接原子的編碼的標(biāo)簽圖。
????????分布載荷是通過物理機(jī)器的數(shù)量執(zhí)行一個(gè)快速平衡分區(qū)的標(biāo)簽圖。每臺(tái)機(jī)器然后構(gòu)造其本地圖,通過從每個(gè)原子的分配的記錄來回放?;胤胚^程還實(shí)例化的在內(nèi)存中的本地分區(qū)虛擬點(diǎn)。虛擬點(diǎn)在網(wǎng)絡(luò)上被用作緩存。緩存一致性被安排使用一個(gè)簡單版本控制系統(tǒng),消除了不變或常量數(shù)據(jù)的傳播(如邊的權(quán)重)。
????????兩級(jí)分區(qū)技術(shù)允許相同的圖分區(qū)計(jì)算可以被不同數(shù)量的機(jī)器重用,而不需要一個(gè)完整的實(shí)現(xiàn)步驟。兩級(jí)分區(qū)方案的質(zhì)量研究超出了本文的范圍,但使用圖表的簡單實(shí)驗(yàn)獲得[23]性能與直接分區(qū)。
4.2分布式GraphLab引擎
????????分布式GraphLab引擎模擬執(zhí)行模型(定義在3.3節(jié)),并負(fù)責(zé)執(zhí)行更新功能和同步操作,維護(hù)調(diào)度頂點(diǎn)集T,并對(duì)適當(dāng)?shù)囊恢滦阅P痛_??纱行?參見3.4節(jié))。在3.3節(jié),已經(jīng)討論了精確的順序T中頂點(diǎn)到實(shí)現(xiàn)以及如何影響性能和表現(xiàn)力。為了評(píng)估權(quán)衡我們建立的低開銷染色引擎,這個(gè)引擎部分異步地執(zhí)行T集合,更富有表現(xiàn)力的鎖定引擎是完全異步的,支持頂點(diǎn)的優(yōu)先事項(xiàng)。
4.2.1染色引擎準(zhǔn)備
????????一個(gè)來實(shí)現(xiàn)一個(gè)可序列化的并行執(zhí)行相關(guān)的任務(wù)(圖中表示為頂點(diǎn))的典型技術(shù)是構(gòu)建一個(gè)頂點(diǎn)著色,每個(gè)頂點(diǎn)分配一個(gè)顏色,這樣沒有相鄰的頂點(diǎn)共享相同的顏色。給定一個(gè)數(shù)據(jù)圖的頂點(diǎn)著色情況,我們可以通過同步執(zhí)行頂點(diǎn)集合T中相同顏色的所有頂點(diǎn),然后繼續(xù)下一個(gè)顏色,來滿足邊緣一致性模型。?我們使用術(shù)語染色步,在類比的超級(jí)步 BSP模型中,描述在單獨(dú)的顏色和溝通所有的變化的情況下,更新所有的頂點(diǎn)的過程。同步操作就可以安全地運(yùn)行染色步。
????????我們可以僅通過改變頂點(diǎn)的顏色,滿足其他一致性模型。完整的一致性模型是滿意的通過構(gòu)造一個(gè)二階頂點(diǎn)著色(即沒有頂點(diǎn)分享相同的顏色在任何兩個(gè)鄰居的之間)。頂點(diǎn)的一致性模型是通過設(shè)定所有頂點(diǎn)為相同的顏色來實(shí)現(xiàn)的。而最優(yōu)圖著色是NP難題,一個(gè)合理的高質(zhì)量著色使用啟發(fā)式方法圖形著色可以快速構(gòu)建(如貪心的著色)。此外,許多MLDM問題生成帶有瑣碎的顏色的圖表。例如,許多優(yōu)化問題在MLDM自然表達(dá)為雙邊(two-colorable)圖表,而基于模板模型的程序可以很容易的使用模板[12]。
????????在染色引擎運(yùn)行同步的染色步時(shí),虛擬點(diǎn)和虛擬邊的改變是異步通信。因此,染色引擎有效地在每個(gè)染色步使用網(wǎng)絡(luò)帶寬和處理器時(shí)間。然而,我們必須確保所有的修改在改變到下一個(gè)顏色之前能夠被連接起來,因此我們需要一個(gè)在染色步之間的完整的通信界限。
4.2.2分布式鎖引擎
????????當(dāng)染色引擎滿足分布式GraphLab框架(第3節(jié)),它不提供足夠的調(diào)度靈活性為許多有趣的應(yīng)用程序。此外,它是以圖著色的可用性為先決條件,這可能并非總是有效的。為了克服這些限制,我們介紹擴(kuò)展了用于共享內(nèi)存引擎的技術(shù)的分布式互斥鎖引擎。
????????我們通過實(shí)現(xiàn)分布式互斥讀寫鎖關(guān)聯(lián)每個(gè)頂點(diǎn)。不同的一致性模型可以使用不同的鎖協(xié)議實(shí)現(xiàn)。頂點(diǎn) 的一致性是通過獲取每個(gè)請(qǐng)求中心頂點(diǎn)作用域的寫鎖來完成的。邊一致性是通過在中央頂點(diǎn)獲取寫鎖,在相鄰的頂點(diǎn)獲取讀鎖。最后,完全一致性是通過獲取中央頂點(diǎn)和相鄰頂點(diǎn)的寫鎖來實(shí)現(xiàn)。通過依照有順序的規(guī)范秩序的方式獲取鎖而避免死鎖。我們依照頂點(diǎn)id的機(jī)器id來引用(所有者(v),v),因?yàn)檫@允許在一個(gè)遠(yuǎn)程的機(jī)器的所有鎖可以被請(qǐng)求通過單個(gè)消息。
????????因?yàn)閳D是分區(qū)的,我們限制每臺(tái)機(jī)器只能更新本地頂點(diǎn)。虛擬頂點(diǎn)/邊更新直接訪問內(nèi)存所有信息的范圍。每個(gè)工作線程在每臺(tái)機(jī)器上評(píng)估中所描述的回路(Alg.3),直到調(diào)度器是空的。終止評(píng)估使用分布式一致算法[26]。
????????由于遠(yuǎn)程鎖獲取和數(shù)據(jù)同步的延遲,在(Alg。3)樸素的實(shí)現(xiàn)將表現(xiàn)不佳。因此我們依靠幾個(gè)技術(shù)來降低延遲和隱藏它的影響[17]。首先,虛擬點(diǎn)系統(tǒng)提供緩存功能,消除了沒有改變的遠(yuǎn)程數(shù)據(jù)傳輸或等待的需要。第二,所有的鎖請(qǐng)求和同步調(diào)用是線性的,允許每臺(tái)機(jī)器同時(shí)請(qǐng)求鎖和數(shù)據(jù),然后評(píng)估作用域已經(jīng)準(zhǔn)備好了的更新函數(shù)。
????????線式鎖定和預(yù)讀:每臺(tái)機(jī)器維護(hù)線性的擁有鎖請(qǐng)求的頂點(diǎn),但是沒有得到執(zhí)行的。完成的鎖獲取和數(shù)據(jù)同步的頂點(diǎn)執(zhí)行離開線性管道和工作線程。本地的調(diào)度程序確保管道總是滿足使用的。管線式鎖定引擎的回路概述被展示在(Alg.4)。
????????為了實(shí)現(xiàn)流水線系統(tǒng),常規(guī)的讀寫鎖不能被使用在將停止的爭用管道線程的數(shù)據(jù)上。因此,我們實(shí)現(xiàn)了一個(gè)非阻塞的通過回調(diào)操作的讀寫鎖變種。鎖請(qǐng)求和獲取一個(gè)回調(diào)指針,這就叫做請(qǐng)求被實(shí)現(xiàn)。這些回調(diào)指針被鏈接成一個(gè)分布式擴(kuò)展傳遞理論,這個(gè)理論在機(jī)器間的鎖請(qǐng)求被批準(zhǔn)。既然鎖請(qǐng)求依從之前的描述的順序(線性),無死鎖操作就能被保證。為了進(jìn)一步減少延遲,在每臺(tái)機(jī)器完成其本地鎖后,數(shù)據(jù)同步鎖應(yīng)該立即執(zhí)行。
?
????????例4。為了獲得一個(gè)分布式邊一致的作用域下的一個(gè)頂點(diǎn)v,這個(gè)頂點(diǎn)在機(jī)器2上,虛擬點(diǎn)在機(jī)器1和5上,系統(tǒng)首先發(fā)送一個(gè)消息到機(jī)器1,獲取機(jī)器1上的邊一致性的作用域(在v寫鎖,在鄰接點(diǎn)讀鎖)。一旦鎖被請(qǐng)求了,消息被傳遞到機(jī)器2,再次獲得本地邊一致作用域。最后,在返回主機(jī)信號(hào)完成之前,消息發(fā)送到機(jī)器5。
????????評(píng)估分布式管線(管道線性)系統(tǒng)的性能, 我們構(gòu)建了一個(gè)三維網(wǎng)格的300×300×300 = 27,000,000個(gè)頂點(diǎn)。每個(gè)頂點(diǎn)26個(gè)連接(直接相鄰的頂點(diǎn)沿軸方向,以及所有對(duì)角線), 生產(chǎn)超過3.75億的邊緣。圖使用Metis [21]被分成512個(gè)原子。我們表示圖作為二進(jìn)制Markov隨機(jī)文件[13]和評(píng)估運(yùn)行10次迭代的置信傳播[13],從不同長度100至10000的管道,EC2集群計(jì)算實(shí)例的數(shù)量(cc1.4xlarge)4機(jī)(32個(gè)處理器)到16機(jī)(128個(gè)處理器)。我們看到在(圖3(a))分布式鎖系統(tǒng)提供了強(qiáng)有力的、幾乎線性,可伸縮性的性能。我們?cè)趫D3(b) 通過增加的管道長度來評(píng)估管道系統(tǒng)的有效性。我們發(fā)現(xiàn)增加長度從100到1000導(dǎo)致運(yùn)行時(shí)減少三倍。
4.3容錯(cuò)
????????我們?yōu)镚raphLab框架引入容錯(cuò)分布式,使用一個(gè)分布式檢查點(diǎn)機(jī)制。在一個(gè)事件發(fā)生失敗后,系統(tǒng)從最后一個(gè)檢查點(diǎn)恢復(fù)過來。我們?cè)u(píng)估兩個(gè)策略去構(gòu)建分布式快照:一個(gè)同步的方法——暫停所有計(jì)算當(dāng)構(gòu)造快照,和一個(gè)異步方法——逐步構(gòu)造快照沒有暫停執(zhí)行。
????????同步快照通過暫停更新功能來執(zhí)行,沖洗所有的溝通渠道,然后從最后次快照保存所有修改數(shù)據(jù)。變化都寫在分布式文件系統(tǒng)日志文件里,可以用來在任何以前的快照上重新啟動(dòng)執(zhí)行。
????????不幸的是,同步快照暴露了GraphLab引擎一樣效率低下的同步計(jì)算 (第2節(jié)) GraphLab試圖解決的。因此我們?cè)O(shè)計(jì)了一個(gè)完全異步的基于Chandy-Lamport[6] 替代快照。對(duì)于使用GraphLab框架,我們?cè)O(shè)計(jì)并實(shí)現(xiàn)了的一種Chandy-Lamport的變體,專門為GraphLab 數(shù)據(jù)圖和執(zhí)行模型定制的快照。由此產(chǎn)生的算法(Alg。5)表示為一個(gè)更新功能和保證一致的快照,在下列所示:
?邊緣一致性是用于所有更新功能,
?在作用域未鎖之前完成調(diào)度,
?其他更新函數(shù)比更新快照優(yōu)先,
????????對(duì)GraphLab引擎實(shí)現(xiàn)最小的改變。正確性的證明遵循自然的原始證據(jù)在[6]中,機(jī)器和渠道取而代之的是頂點(diǎn)與邊和消息對(duì)應(yīng)作用域的修改。
????????同步和異步快照都在固定的間隔啟動(dòng)。啟動(dòng)的時(shí)間間隔必須平衡構(gòu)建檢查點(diǎn)和從失敗的檢查點(diǎn)恢復(fù)的花費(fèi)。Young et al. [37]派生一個(gè)一階近似最優(yōu)檢查點(diǎn)間隔:
????????當(dāng)T(checkpoint)是構(gòu)建檢查點(diǎn)的時(shí)間和T(MTBF)集群的平均故障間隔時(shí)間。例如,使用一個(gè)集群的64臺(tái)機(jī)器,每臺(tái)機(jī)器平均1年,一個(gè)檢查點(diǎn)2分鐘時(shí)間導(dǎo)致最優(yōu)檢查點(diǎn)間隔是3小時(shí)。因此,對(duì)于部署考慮在我們的實(shí)驗(yàn)中,即使把T(MTBF)悲觀的假設(shè),導(dǎo)致檢查點(diǎn)間隔,遠(yuǎn)遠(yuǎn)超過我們的實(shí)驗(yàn)和事實(shí)上的運(yùn)行時(shí)也超過了Hadoop實(shí)驗(yàn)運(yùn)行時(shí)。這引入了在Hadoop強(qiáng)大的容錯(cuò)問題。更好的表現(xiàn)可以通過平衡容錯(cuò)性能成本實(shí)現(xiàn)對(duì)工作的重新啟動(dòng)。
????????評(píng)價(jià): 對(duì)前一節(jié)中的相同的網(wǎng)片問題,我們?cè)u(píng)估快照的性能算法,16個(gè)機(jī)器上運(yùn)行(128處理器)。我們配置實(shí)現(xiàn)問題的一個(gè)快照第二次迭代。在圖4(a),我們標(biāo)記隨時(shí)間更新完成的數(shù)量。同步快照和異步快照的效果可以清楚地被觀察到:同步快照停止執(zhí)行,而異步的快照只減慢執(zhí)行。
????????當(dāng)系統(tǒng)性能的變化加劇同步操作的成本的時(shí)候,異步快照在多租戶的設(shè)定的好處更加明顯。我們模擬了Amazon EC2在快照開始了15秒后停止的一個(gè)過程。在圖4(b),我們?cè)俅螛?biāo)記隨時(shí)間更新完成的數(shù)量后,我們觀察到異步快照是受模擬故障的影響最小(只有3秒添加到運(yùn)行時(shí)),而同步快照經(jīng)歷一個(gè)完整的運(yùn)行時(shí)增加到15秒。
?
4.4系統(tǒng)設(shè)計(jì)
????????在圖5中(a),我們提供GraphLab系統(tǒng)的高級(jí)概述。用戶首先在一個(gè)分布式文件系統(tǒng)(DFS)構(gòu)建原子圖表示。如果使用hash分區(qū),構(gòu)造過程是Map-Reduceable過程,執(zhí)行對(duì)每個(gè)頂點(diǎn)和邊map,每個(gè)reduce聚集一個(gè)原子文件。原子格式允許將來的改變,通過附加圖數(shù)據(jù),而不會(huì)再操作所有數(shù)據(jù)。
????????圖5(b)提供了一個(gè)高水平的概述GraphLab鎖定引擎的實(shí)現(xiàn)。一個(gè)集群上GraphLab啟動(dòng)時(shí),每臺(tái)機(jī)器上執(zhí)行GraphLab程序的一個(gè)實(shí)例。GraphLab過程是同步的,并且使用一個(gè)自定義異步基于TCP / IP的RPC協(xié)議直接溝通。第一個(gè)進(jìn)程是一個(gè)額外的責(zé)任主/監(jiān)控機(jī)器。
????????主進(jìn)程在啟動(dòng)時(shí)會(huì)根據(jù)原子序列計(jì)算原子的位置,所有進(jìn)程執(zhí)行一個(gè)被指派給他們的原子進(jìn)行并行加載。每個(gè)流程負(fù)責(zé)管理分區(qū)的本地圖存儲(chǔ)的分布式圖,并提供分布式鎖。一個(gè)緩存用于提供對(duì)遠(yuǎn)程圖數(shù)據(jù)的訪問。
????????每個(gè)進(jìn)程也包含一個(gè)調(diào)度程序,管理已經(jīng)分配給進(jìn)程的頂點(diǎn)。在運(yùn)行時(shí),每臺(tái)機(jī)器的當(dāng)?shù)卣{(diào)度器將頂點(diǎn)放入預(yù)取管道,收集所需的數(shù)據(jù)和頂點(diǎn)的鎖執(zhí)行。一旦所有數(shù)據(jù)和鎖已經(jīng)獲得,頂點(diǎn)操作由一個(gè)工作線程池完成。頂點(diǎn)調(diào)度被分散到每個(gè)機(jī)器,管理本地頂點(diǎn)的調(diào)度和轉(zhuǎn)發(fā)請(qǐng)求遠(yuǎn)程頂點(diǎn)的調(diào)度。最后,一個(gè)分布式共識(shí)算法[26]用于確認(rèn)所有調(diào)度器是否為空。由于分布式運(yùn)行時(shí)的對(duì)稱設(shè)計(jì),沒有集中的瓶頸。
5.CONCLUSIONS AND FUTRUE WORK
????????最近MLDM研究的進(jìn)展已經(jīng)強(qiáng)調(diào),在大規(guī)模MLDM問題中稀疏計(jì)算依賴性,異步計(jì)算,動(dòng)態(tài)調(diào)度和可串行化。 我們描述了最近的分布式抽象如何不能支持所有三個(gè)關(guān)鍵屬性。 為了解決這些屬性,我們引入了Distributed GraphLab,一種圖形并行分布式框架,它針對(duì)MLDM應(yīng)用的這些重要屬性。分布式GraphLab通過改進(jìn)執(zhí)行模型,放寬調(diào)度需求以及引入新的分布式數(shù)據(jù)圖,執(zhí)行引擎和容錯(cuò)系統(tǒng),將共享內(nèi)存GraphLab抽象擴(kuò)展到分布式設(shè)置。
????????我們?cè)O(shè)計(jì)了一個(gè)基于兩階段分區(qū)方案的分布式數(shù)據(jù)圖形格式,該格式允許在可變大小的集群部署中實(shí)現(xiàn)高效的負(fù)載平衡和分布式入口。我們?cè)O(shè)計(jì)了兩個(gè)GraphLab引擎:部分同步并假定存在圖著色的一個(gè)色引擎,以及完全異步的鎖引擎,支持通用圖結(jié)構(gòu),并依賴于一種基于圖形的新型流水線鎖定系統(tǒng)來隱藏網(wǎng)絡(luò)潛伏。 最后,我們引入了兩種容錯(cuò)機(jī)制:基于Chandy-Lamport快照的同步快照算法和完全異步快照算法,可以使用常規(guī)GraphLab基元表示。
????????我們使用C++實(shí)現(xiàn)分布式GraphLab,并使用真實(shí)數(shù)據(jù)在三種最先進(jìn)的MLDM算法上對(duì)其進(jìn)行評(píng)估。評(píng)估是在Amazon EC2上使用64臺(tái)HPC機(jī)器中的512個(gè)處理器執(zhí)行的。 我們證明Distributed GraphLab的性能比Hadoop高出20-60倍,并且與定制的MPI實(shí)現(xiàn)相競爭。 我們比較了PageRank,LoopyBP和ALS的BSP(Pregel)實(shí)現(xiàn),并展示了如何支持動(dòng)態(tài)異步計(jì)算可顯著提高收斂性。
????????未來的工作包括擴(kuò)展抽象和運(yùn)行時(shí),以支持圖形數(shù)據(jù)庫中動(dòng)態(tài)演化的圖形和外部存儲(chǔ)。這些功能將使Distributed GraphLab能夠連續(xù)存儲(chǔ)和處理在許多真實(shí)世界的應(yīng)用程序(例如社交網(wǎng)絡(luò)和推薦系統(tǒng))中常見的時(shí)間演進(jìn)數(shù)據(jù)。最后,我們認(rèn)為動(dòng)態(tài)異步圖并行計(jì)算將成為大規(guī)模機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘系統(tǒng)的關(guān)鍵組件,因此對(duì)這些技術(shù)的理論和應(yīng)用的深入研究將有助于定義新興的大學(xué)學(xué)習(xí)領(lǐng)域。
?
參考文獻(xiàn)
[1] R. Angles and C. Gutierrez. Survey of graph database models.ACM Comput.Surv., 40(1):1:1–1:39,2008.
[2] A. Asuncion, P. Smyth, and M. Welling. Asynchronous distributedlearning of topic models. In NIPS, pages 81–88.2008.
[3] D. Batra, A. Kowdle, D. Parikh, L. Jiebo, and C. Tsuhan.iCoseg:Interactive co-segmentation with intelligent scribble guidance. In CVPR, pages 3169 –3176, 2010.
[4] D. P. Bertsekas and J. N. Tsitsiklis. Parallel and distributed computation:numerical methods. Prentice-Hall, Inc., 1989.
[5] A. Carlson, J. Betteridge, B. Kisiel, B. Settles, E. R. H. Jr.,and T.M. Mitchell. Toward an architecture for never-ending language learning. In AAAI, 2010.
[6] K. M. Chandy and L. Lamport. Distributed snapshots:determining globalstates of distributed systems. ACM Trans.Comput. Syst., 3(1):63–75, 1985.
[7] R. Chen, X. Weng, B. He, and M. Yang. Large graph processing in thecloud. In SIGMOD, pages 1123–1126, 2010.
[8] C.-T. Chu, S. K. Kim, Y.-A. Lin, Y. Yu, G. Bradski, A. Y. Ng,and K.Olukotun. Map-reduce for machine learning on multicore. In NIPS, pages 281–288. 2006.
[9] J. Dean and S. Ghemawat. Mapreduce: simplified data processing onlarge clusters. In OSDI, 2004.
[10] B. Efron, T. Hastie, I. M. Johnstone, and R. Tibshirani. Least angleregression. Annals ofStatistics, 32(2):407–499,2004.
[11] G. Elidan, I. McGraw, and D. Koller. Residual Belief Propagation:Informed scheduling for asynchronous message passing. In UAI, pages 165–173, 2006.
[12] J. Gonzalez, Y. Low, A. Gretton, and C. Guestrin. Parallel gibbssampling: From colored fields to thin junction trees. In AISTATS, volume 15, pages 324–332, 2011.
[13] J. Gonzalez, Y. Low, and C. Guestrin. Residual splash for optimallyparallelizing belief propagation. In AISTATS,volume 5, pages 177–184, 2009.
[14] J. Gonzalez, Y. Low, C. Guestrin, and D. O’Hallaron.Distributed parallelinference on large factor graphs. In UAI,2009.
[15] H. Graf, E. Cosatto, L. Bottou, I. Dourdanovic, and V.Vapnik.Parallel support vector machines: The cascade SVM. In NIPS,pages 521–528, 2004.
[16] D. Gregor and A. Lumsdaine. The parallel BGL: A generic library fordistributed graph computations. POOSC, 2005.
[17] A. Gupta, J. Hennessy, K. Gharachorloo, T. Mowry, and W.-D.Weber.Comparative evaluation of latency reducing and tolerating techniques. SIGARCHComput. Archit. News,19(3):254–263, 1991.
[18] B. Hindman, A. Konwinski, M. Zaharia, and I. Stoica. A commonsubstrate for cluster computing. In HotCloud, 2009.
[19] M. Isard, M. Budiu, Y. Yu, A. Birrell, and D. Fetterly.Dryad:distributed data-parallel programs from sequential building blocks. In EuroSys, pages 59–72, 2007.
[20] U. Kang, C. E. Tsourakakis, and C. Faloutsos. Pegasus: A peta-scalegraph mining system implementation and observations. In ICDM, pages 229 –238, 2009.
[21] G. Karypis and V. Kumar. Multilevel k-way partitioning scheme for irregulargraphs. J. ParallelDistrib. Comput.,48(1):96–129, 1998.
[22] S. Lattanzi, B. Moseley, S. Suri, and S. Vassilvitskii. Filtering:amethod for solving graph problems in mapreduce. In SPAA,pages 85–94, 2011.
[23] J. Leskovec. Stanford large network datasetcollection.http://snap.stanford.edu/data/index.html, 2011.
[24] Y. Low, J. Gonzalez, A. Kyrola, D. Bickson, C. Guestrin, and J. M.Hellerstein. Graphlab: A new parallel framework for machine learning. In UAI, pages 340–349, 2010.
[25] G. Malewicz, M. H. Austern, A. J. Bik, J. Dehnert, I. Horn, N.Leiser, and G. Czajkowski. Pregel: a system for large-scale graph processing.In SIGMOD, pages 135–146, 2010.
[26] J. Misra. Detecting termination of distributed computations usingmarkers. In PODC, pages 290–294, 1983.
[27] R. Nallapati, W. Cohen, and J. Lafferty. Parallelized variational EMfor latent Dirichlet allocation: An experimental evaluation of speed andscalability. In ICDM Workshops, pages 349–354, 2007.
[28] R. Neal and G. Hinton. A view of the EM algorithm that justifiesincremental, sparse, and other variants. In Learning in graphical models, pages 355–368. 1998.
[29] Neo4j. http://neo4j.org, 2011.
[30] D. Newman, A. Asuncion, P. Smyth, and M. Welling.Distributedinference for latent dirichlet allocation. In NIPS,pages 1081–1088, 2007.
[31] L. Page, S. Brin, R. Motwani, and T. Winograd. The pagerank citationranking: Bringing order to the web. Technical Report 1999-66, Stanford InfoLab,1999.
[32] R. Pearce, M. Gokhale, and N. Amato. Multithreaded Asynchronous GraphTraversal for In-Memory and Semi-External Memory. In SC, pages 1–11, 2010.
[33] R. Power and J. Li. Piccolo: building fast, distributed programs withpartitioned tables. In OSDI, 2010.
[34] A. G. Siapas. Criticality and parallelism in combinatorial optimization. PhD thesis, Massachusetts Instituteof Technology, 1996.
[35] A. J. Smola and S. Narayanamurthy. An Architecture for Parallel TopicModels. PVLDB, 3(1):703–710, 2010.
[36] S. Suri and S. Vassilvitskii. Counting triangles and the curse of thelast reducer. In WWW, pages 607–614,2011.
[37] J. W. Young. A first order approximation to the optimum checkpointinterval. Commun. ACM, 17:530–531, 1974.
[38] M. Zaharia, M. Chowdhury, M. Franklin, S. Shenker, and I. Stoica.Spark: cluster computing with working sets. In HotCloud, 2010.
[39] Y. Zhang, Q. Gao, L. Gao, and C. Wang. Priter: a distributed frameworkfor prioritized iterative computations. In SOCC, pages 13:1–13:14, 2011.
[40] Y. Zhou, D. Wilkinson, R. Schreiber, and R. Pan. Large-scale parallelcollaborative filtering for the netflix prize. In AAIM,pages 337–348, 2008.
?
總結(jié)
以上是生活随笔為你收集整理的一周一论文(翻译)—— [PVLDB 12] Distributed GraphLab A Framework for Machine Learning 分布式机器学习图计算框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [SOSP 17] Wukong+S :
- 下一篇: [PVLDB 12] GraphLab