Plato高性能圖計(jì)算框架
簡(jiǎn)介
Plato 高性能圖計(jì)算框架主要有以下貢獻(xiàn):
- Plato 能高效地支撐騰訊超大規(guī)模社交網(wǎng)絡(luò)圖數(shù)據(jù)的各類計(jì)算,且性能達(dá)到了學(xué)術(shù)界和工業(yè)界的頂尖水平,比Spark GraphX 高出 1-2 個(gè)數(shù)量級(jí),使得許多按天計(jì)算的算法可在小時(shí)甚至分鐘級(jí)別完成,也意味著騰訊圖計(jì)算全面進(jìn)入了分鐘級(jí)時(shí)代。
- Plato 的內(nèi)存消耗比 Spark GraphX 減少了 1-2 個(gè)數(shù)量級(jí),意味著只需中小規(guī)模的集群(10 臺(tái)服務(wù)器左右)即可完成騰訊數(shù)據(jù)量級(jí)的超大規(guī)模圖計(jì)算,打破了動(dòng)輒需要上百臺(tái)服務(wù)器的資源瓶頸,同時(shí)也極大地節(jié)約了計(jì)算成本。
- Plato 隸屬騰訊圖計(jì)算 TGraph,起源于超大規(guī)模社交網(wǎng)絡(luò)圖數(shù)據(jù),但可以完美適配其他類型的圖數(shù)據(jù),同時(shí),Plato 作為高性能、可擴(kuò)展、易插拔的工業(yè)級(jí)圖計(jì)算框架,推動(dòng)了業(yè)界超大規(guī)模圖計(jì)算框架的技術(shù)進(jìn)步。
核心能力
Plato 目前主要提供兩方面的能力:
- 騰訊數(shù)據(jù)量級(jí)下的離線圖計(jì)算
- 騰訊數(shù)據(jù)量級(jí)下的圖表示學(xué)習(xí)
Plato 的整體架構(gòu)如下圖所示。Plato 可運(yùn)行在通用的 X86 集群,如 Kubernetes 集群、Yarn 集群等。在文件系統(tǒng)層面,Plato 提供了多種接口支持主流的文件系統(tǒng),如 HDFS、Ceph 等等。
Plato 高性能圖計(jì)算框架的核心是 Plato 自適應(yīng)圖計(jì)算引擎。目前 Plato 計(jì)算引擎針對(duì)不同類型的圖算法,提供了稀疏稠密自適應(yīng)計(jì)算模式、共享內(nèi)存計(jì)算模式和流水線計(jì)算模式等,還設(shè)計(jì)了良好的接口支持接入新的計(jì)算通信模式。此外,Plato 自適應(yīng)圖計(jì)算引擎還包含了圖劃分、圖表示以及多層級(jí)計(jì)算通信協(xié)同調(diào)度等模塊。
計(jì)算引擎之上,Plato 為算法設(shè)計(jì)者或具體的業(yè)務(wù)提供多層次接口:從底層的 API,到圖算法庫,再到為具體業(yè)務(wù)量身打造的“解決方案”——圖工具集。通過這些應(yīng)用層的接口和工具,Plato 還可以把離線計(jì)算結(jié)果與其他機(jī)器學(xué)習(xí)算法相結(jié)合,共同支撐頂層的不同業(yè)務(wù)。
已開源的算法:
- 圖特征
- 樹深度/寬度
- 圖特征打包計(jì)算:節(jié)點(diǎn)數(shù)/邊數(shù)/密度/節(jié)點(diǎn)度分布
- N-階度
- HyperANF
- 節(jié)點(diǎn)中心性指標(biāo)
- KCore
- Pagerank
- Closeness
- Betweenness
- 連通圖 & 社團(tuán)識(shí)別
- Connected-Component
- LPA
- HANP
- 圖表示學(xué)習(xí)
- Node2Vec-Randomwalk
- Metapath-Randomwalk
- 聚類/分圈算法
- LDA
- FastUnfolding
- 其他圖相關(guān)算法
- BFS
- 共同類計(jì)算
評(píng)論
圖片
表情
