Plato - 高性能图计算框架


BSD-3-Clause
跨平台
C/C++

软件简介

简介

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 为算法设计者或具体的业务提供多层次接口:从底层的
API,到图算法库,再到为具体业务量身打造的“解决方案”——图工具集。通过这些应用层的接口和工具,Plato
还可以把离线计算结果与其他机器学习算法相结合,共同支撑顶层的不同业务。

已开源的算法:

  • 图特征
    • 树深度/宽度
    • 图特征打包计算:节点数/边数/密度/节点度分布
    • N-阶度
    • HyperANF
  • 节点中心性指标
    • KCore
    • Pagerank
    • Closeness
    • Betweenness
  • 连通图 & 社团识别
    • Connected-Component
    • LPA
    • HANP
  • 图表示学习
    • Node2Vec-Randomwalk
    • Metapath-Randomwalk
  • 聚类/分圈算法
    • LDA
    • FastUnfolding
  • 其他图相关算法
    • BFS
    • 共同类计算