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 为算法设计者或具体的业务提供多层次接口:从底层的 API,到图算法库,再到为具体业务量身打造的“解决方案”——图工具集。通过这些应用层的接口和工具,Plato 还可以把离线计算结果与其他机器学习算法相结合,共同支撑顶层的不同业务。
已开源的算法:
- 图特征
- 树深度/宽度
- 图特征打包计算:节点数/边数/密度/节点度分布
- N-阶度
- HyperANF
- 节点中心性指标
- KCore
- Pagerank
- Closeness
- Betweenness
- 连通图 & 社团识别
- Connected-Component
- LPA
- HANP
- 图表示学习
- Node2Vec-Randomwalk
- Metapath-Randomwalk
- 聚类/分圈算法
- LDA
- FastUnfolding
- 其他图相关算法
- BFS
- 共同类计算
评论