騰訊開源圖計算框架Plato

開源地址

https://github.com/tencent/plato

導語

11 月 14 日,騰訊正式宣佈開源高性能圖計算框架 Plato。據介紹,Plato 可滿足十億級節點的超大規模圖計算需求,將算法計算時間從「天」級縮短到「分鐘」級,性能全面領先於其它主流分佈式圖計算框架,並且打破了原本動輒需要數百臺服務器的資源瓶頸。

意義

圖作為一種表示和分析大數據的有效方法,已成為社交網絡、推薦系統、網絡安全、文本檢索和生物醫療等領域至關重要的數據分析和挖掘工具。例如,定期對網頁進行影響力排序以提升用戶的搜索體驗;分析龐大的社交網絡結構以便精準地為用戶推薦服務;通過子圖匹配等方式瞭解蛋白質間的相互作用從而研製更有效的臨床醫藥。

圖數據是高維度數據,圖算法的計算性能是決定圖挖掘能否成功的關鍵因素之一。對於騰訊超過十億級節點的超大規模社交網絡數據,計算性能顯得尤為重要。遺憾的是,工業界和學術界的各種分佈式圖計算框架,對於騰訊超大規模社交網絡圖數據,性能達不到可用的要求,例如,對於社交網絡的某些基礎統計特徵,現有計算框架都無法在有限資源和有限時間內完成計算。

騰訊圖計算TGraph,整合騰訊內部圖計算資源,致力於打造業界領先的超大規模圖計算平臺。針對十億級節點的超大規模圖計算,TGraph湧現出了自研的高性能圖計算框架Plato,將算法計算時間從天級縮短到分鐘級,性能提升數十倍,達到業界領先水平,並且打破了動輒需要數百臺服務器的資源瓶頸,最少只需十臺服務器即可完成計算。高性能圖計算框架Plato賦能騰訊內部包括微信在內的眾多核心業務,極大的創造了業務價值。

貢獻

  • Plato能高效地支撐騰訊超大規模社交網絡圖數據的各類計算,且性能達到了學術界和工業界的頂尖水平,比Spark GraphX高出1-2個數量級,使得許多按天計算的算法可在小時甚至分鐘級別完成,也意味著騰訊圖計算全面進入了分鐘級時代。
  • Plato的內存消耗比Spark GraphX減少了1-2個數量級,意味著只需中小規模的集群(10臺服務器左右)即可完成騰訊數據量級的超大規模圖計算,打破了動輒需要上百臺服務器的資源瓶頸,同時也極大地節約了計算成本。
  • Plato隸屬騰訊圖計算TGraph,起源於超大規模社交網絡圖數據,但可以完美適配其他類型的圖數據,同時,Plato作為高性能、可擴展、易插拔的工業級圖計算框架,推動了業界超大規模圖計算框架的技術進步。
  • 核心能力

    Plato目前主要提供兩方面的能力:

    • 騰訊數據量級下的離線圖計算
    • 騰訊數據量級下的圖表示學習

    Plato的整體架構如下圖所示。Plato可運行在通用的X86集群,如Kubernetes集群、Yarn集群等。在文件系統層面,Plato提供了多種接口支持主流的文件系統,如HDFS、Ceph等等。

    騰訊開源圖計算框架Plato

    Plato高性能圖計算框架的核心是Plato自適應圖計算引擎。目前Plato計算引擎針對不同類型的圖算法,提供了稀疏稠密自適應計算模式、共享內存計算模式和流水線計算模式等,還設計了良好的接口支持接入新的計算通信模式。此外,Plato自適應圖計算引擎還包含了圖劃分、圖表示以及多層級計算通信協同調度等模塊。

    計算引擎之上,Plato為算法設計者或具體的業務提供多層次接口:從底層的API,到圖算法庫,再到為具體業務量身打造的“解決方案”——圖工具集。通過這些應用層的接口和工具,Plato還可以把離線計算結果與其他機器學習算法相結合,共同支撐頂層的不同業務。

    已開源的算法:

    • 圖特徵 樹深度/寬度 圖特徵打包計算:節點數/邊數/密度/節點度分佈 N-階度 HyperANF
    • 節點中心性指標 KCore Pagerank Closeness Betweenness
    • 連通圖 & 社團識別 Connected-Component LPA HANP
    • 圖表示學習 Node2Vec-Randomwalk Metapath-Randomwalk
    • 聚類/分圈算法 FastUnfolding
    • 其他圖相關算法 BFS 共同類計算

    即將開源的算法:

    • Network Embedding LINE Word2Vec GraphVite
    • GNN GCN GraphSage

    性能對比

    Plato的計算性能遙遙領先於主流的分佈式圖計算框架。下圖選取了Plato與Spark GraphX在PageRank和LPA這兩個benchmark算法的性能對比(受限於篇幅原因,其他benchmark算法性能對比不再贅述,性能對比和上述兩個算法類似)。從下圖可以看到,Plato的性能比Spark GraphX高出1-2個數量級。

    除了計算性能不足,內存佔用過大也是限制大規模圖計算的主要因素。Plato的另一個巨大優勢則是他的內存開銷遠小於主流圖計算框架。從下圖看到,Plato的內存消耗比Spark GraphX減少了1-2個數量級,為超大規模圖計算創造了更大的想象空間。

    騰訊開源圖計算框架Plato

    Plato不僅在benchmark算法中獨樹一幟,在真實的業務算法中也同樣成效卓著。在騰訊數據量級下,Plato的計算性能也非常優秀。下圖給出了Plato在騰訊數據量級下的共同類計算、Node2Vec、LINE、GraphSage等典型業務算法的性能(受限於篇幅原因,其他算法性能不再贅述,性能和上述算法類似)。

    騰訊開源圖計算框架Plato


    分享到:


    相關文章: