大规模图计算系统或框架分析

大规模图计算系统或框架

1. Plato

所属公司:腾讯
处理规模:十亿级节点
响应时间:分钟级
计算模式:自适应计算模式、共享内存计算模式和流水线计算模式
语言:C++
核心能力:离线图计算和图表示学习
开源算法:图特征(树深度/宽度;图特征打包计算:节点数/边数/密度/节点度分布;N-阶度;HyperANF)、节点中心性指标(Kcore、 Pagerank、Closeness、Betweenness)、连通图 & 社团识别( Connected-Component、LPA、HANP)、图表示学习(Node2Vec-Randomwalk、Metapath-Randomwalk)、聚类/分圈算法(LDA、FastUnfolding)、其他图相关算法(BFS、共同类计算)
可参考资料(开发)开源地址
Plato架构

2. Angel

所属公司:腾讯
处理规模:亿级节点
响应时间:小时级
计算模式:基于参数服务器(Parameter Server)理念开发的高性能分布式机器学习和图计算平台
语言:Java和Scala
核心能力:核心设计理念围绕模型。它将高维度的大模型合理切分到多个参数服务器节点,并通过高效的模型更新接口和运算函数,以及灵活的同步协议,轻松实现各种高效的机器学习和图算法。
开源算法:传统机器学习算法:LR、SVM、FM、Linear Regression、Robust Regression、Softmax Regression、Kmeans、GBDT、LDA* (WarpLDA);基于Spark:FM、DeepFM、DeepAndWide、DCN、XDeepFM、AttentionFM、PNN、FTRL、Logistic Regression(LR)、FTRLFM、GBDT、PageRank、KCORE、Hindex、Closeness、CommonFriends、ConnectedComponents、TriangleCountingUndirected、Louvain、LPA、LINE、Word2Vec、GraphSage、GCN、DGI
可参考资料(开发)开源地址
Angel架构
(1)Parameter Server层:提供通用的参数服务器服务,负责模型的分布存储,通讯同步和协调计算,并通过PSAgent提供PS Service
(2)Worker层: 基于Angel自身模型设计的分布式运行节点,自动读取并划分数据,局部训练出模型增量,通过PS Client和PS Server通信,完成模型训练和预测。一个Worker包含一个或者多个Task,Task是Angel计算单元,这样设计的原因是可以让Task共享Worker的许多公共资源。
(3)Model层: 这是一层虚拟抽象层,并非真实存在的物理层。关于Model的Push和Pull,各种异步控制,模型分区路由,自定义函数……是连通Worker和PSServer的桥梁。

3. BigGraph

所属公司:Facebook
处理规模:十亿节点和数万亿条边
计算模式:分布式计算
语言:基于pytorch
核心能力:对传统的多关系嵌入系统(TransE, RESCAL, DistMult and ComplEx)做了几处修改让系统能扩展到能处理数十亿节点和数万亿条边的图形
开源算法:将邻接矩阵分块、分布式执行模型、高效的节点负采样、支持多实体、多关系图,支持边缘权重、关系运算符选择等关系配置选项
可参考资料(开发)开源地址

4. PyTorch

所属公司:Facebook
处理规模:十亿节点和数万亿条边
语言:python
核心能力:强大的GPU加速的张量计算、含自动求导系统的的深度神经网络
开源算法:张量计算、自动求导、神经网络的包、数据的加载和预处理
可参考资料(开发)开源地址

5. DGL

所属公司:Amazon
核心能力:异构图神经网络框架,以graph为中心、框架中立
开源算法:大多数图神经网络都是基于DGL开发的,如GraphSAGE、RGCN之类
可参考资料(开发)开源地址
DGL架构

6. DistDGL

所属公司:Amazon
处理规模:数亿个节点和数十亿条边
计算模式:在机器集群上以小型批处理方式培训gnn,分布式训练
语言:python
核心能力:图分割及负载均衡(使用METIS图分割算法把图分割成多个子图,不同子图分布式存储在不同机器上;然后把不同子图的计算也分配到存储数据的机器上。做到数据在哪里,计算就在哪里(owner-compute rule),最大程度利用数据和计算的局部性,减小网络通信。)
可参考资料(开发)开源地址
DistDGL架构

7. Euler

所属公司:阿里
处理规模:数十亿点数百亿边的复杂异构图
计算模式:分布式图学习框架
语言:python2
核心能力:大规模图的分布式学习、支持复杂异构图的表征、图学习与深度学习的结合、分层抽象与灵活扩展
开源算法:提供C++的API来调用所有的图操作,目前暂支持TensorFlow和阿里自己的X-DeepLearning框架
可参考资料(开发)开源地址
在这里插入图片描述

8. GraphLearn

所属公司:阿里
处理规模:百亿边、十亿点级别的大规模异构图、属性图、有向图、无向图
响应时间:几分钟内完成从文件系统的原始数据到内存索引的构建
计算模式:大规模分布式训练
语言:C++、提供python层的封装
核心能力:结合了图引擎和张量引擎
开源算法:图查询、图遍历、图采样、负采样、按指定属性条件的负采样、KNN等;已应用在阿里内部的推荐召回、安全风控等场景;实现常见GNNs, KG等算法;支持自定义算法。
可参考资料(开发)开源地址
GraphLearn图引擎和张量引擎

  1. 图引擎具有鲁棒性(容错、动态伸缩)、高效性(存储、采样等)特点,通过基于内存的分布式存储和RPC, 能够高效处理大规模图数据,并封装了python接口和类似gremlin的GSL接口提供图采样、特征查询等操作,通过这些操作从大图里采样子图并且组织成EgoGraph或者SubGraph格式。
  2. 基于TensorFlow/PyTorch等深度学习引擎抽象和实现了数据转换和处理模块,常见卷积层和模型,提供用户友好兼具灵活性的算子。
    GraphLearn架构
    (1)图引擎和NN引擎层
    分布式图存储和查询引擎。
    兼容常用深度学习框架,支持TensorFlow和PyTorch。
    (2)数据层
    提供简洁灵活的数据预处理,如FeatureColumn和FeatureHandler对原始数据进行转化。
    Dataset,可以将采样的子图组织成EgoGraph或SubGraph的形式。
    (3)网络层
    封装常用图卷积层,支持异构图.
    (4)模型层
    实现常见GNNs, KG等算法。
    支持自定义算法。

9. GraphScope

所属公司:阿里
处理规模:大规模异构图
计算模式:一站式图计算系统,单机
语言:C++\python
核心能力:1.交互式图查询引擎;2.高性能图分析引擎;3.高性能、可扩展的图深度学习
开源算法:支持PyData(数据存储)、Gremlin(图SQL)图查询语言(图遍历/图学习)、图操作与算法API兼容NetworkX(Python上图分析库的标准)
可参考资料(开发)开源地址
GraphScope架构
(1)应用层:GraphScope是完全拥抱PyData的生态,在图遍历和图操作方面又兼容了Gremlin和NetworkX现实标准。
(2)存储层:提出了Vineyard分布式内存管理框架,支持跨系统的内存数据统一管理,它基于共享内存,零拷贝开箱,提供高层数据抽象。
(3)编程层:GraphScope的API完全兼容NetworkX。NetworkX是Python上的一个图分析库的事实标准。NetworkxX的用户可以直接使用之前的业务逻辑,代码稍做修改,就可以在GraphScope运行图计算代码,从而降低分布式图计算的门槛。
(4)引擎层:支持对Gremlin查询的并行化。Gremlin查询可表达任意嵌套遍历和动态控制流,但是它存在细粒度动态数据依赖与可扩展性的矛盾,我们提出了新的数据流模型抽象,很好地解决了正确性问题,且与性能优化解耦,以支持复杂策略优化。

10. Paddlepaddle

所属公司:阿里
计算模式:深度学习框架
语言:前端python,底层C++
核心能力:1.同时支持动态图和静态图,兼顾灵活性和效率;2.精选应用效果最佳的算法模型并提供官方支持;3.真正源于产业实践,提供业界最强的超大规模并行深度学习能力
开源算法:支持100多个经过产业实践长期打磨的主流模型;开源开放200多个预训练模型。
可参考资料(开发)开源地址
Paddle架构

11. ByteGraph

所属公司:字节
处理规模:万亿级
核心功能:图数据库
BigGraph架构

12. Spark

所属公司:apache
计算模式:基于内存计算的大数据并行计算框架
语言:支持JAVA、Scala、Python等
核心能力:内存运算效率是Hadoop的100倍以上
开源算法:支持SQL查询、流式计算、机器学习和图算法组件,专注并行高效计算
可参考资料(开发)开源地址
Spark架构
(1)Driver:Spark驱动器节点,用于执行Spark任务中的main方法,负责实际代码的执行工作。
(2)Executor:是集群中工作节点(Worker)中的一个JVM进程,负责在 Spark 作业中运行具体任务(Task),任务彼此之间相互独立。
(3)Master & Worker:Master是一个进程,主要负责资源的调度和分配,并进行集群的监控等职责,类似于Yarn环境中的RM, 而Worker呢,也是进程,一个Worker运行在集群中的一台服务器上,由Master分配资源对数据进行并行的处理和计算,类似于Yarn环境中NM。

13. GraphX

所属公司:apache
计算模式:分布式图处理框架
语言:支持JAVA、Scala、Python等
核心能力:基于Spark,现已合并到Spark
开源算法:支持SQL查询、流式计算、机器学习和图算法组件,专注并行高效计算
可参考资料(开发)开源地址
GraphX架构

14. Ligra

所属公司:MIT
计算模式:单机共享内存方式的轻量化的并行计算框架
语言:C++
核心能力:1.利用纯内存读写的高效性;2.压缩矩阵进行存储,内存访问局部性更强,更节省内存;3.没有网络通信开销(单机共享内存);4.使用compare and swap(CAS)原子自旋锁替换更重的互斥锁操作,进一步降低了系统开销。
开源算法:提供了⼀套基于顶点集合和边集合的编程接口,⽤户可以调⽤两个原语分别对所有活跃的顶点和所有活跃的边(即所有活跃顶点的出边)进⾏处理,处理的具体内容取决于⽤户⾃定义的函数。
可参考资料(开发)开源地址

15. Galois

所属公司:The University of Texas
计算模式:图形分析的轻量级基础架构
语言:C++
开源算法:针对高性能、通用的图形分析;高性能要求一些算法需要自主调度,因此需要程序员提供由编程模型支持的优先级调度函数;通用则要求能满足多样性的算法和输入图形。
可参考资料(开发)开源地址

16. GraphMAT

所属公司:The University of Texas
核心能力:1.第一个多核优化的结点编程模型;2.实现了良好的多核可扩展性;3.对框架用户和开发人员都很高效
开源算法:
1.将以顶点为中⼼的程序在后端转换为基于稀疏矩阵的运算。GraphMat将矩阵按⾏划分成若⼲块(chunk)后⽤DCSC(Doubly Compressed Sparse Column)的格式存储,并在计算时让每个块由1个线程独占地处理。
2.网页排名算法(Page Rank, PR)
3.广度优先搜索搜索(Breadth Frist Search, BFS)
4.协同过滤(Collaborative Filtering, CF)
5.三角形计数(Triangle Counting, TC)
6.单源最短路径(Single Source Shortest Path, SSSP)
可参考资料(开发)开源地址

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值