图计算系统发展简史(五)

本文是图计算系统发展简史系列的总结,探讨了图计算语言如Green-Marl、GraphIt和SociaLite,动态图计算系统KineoGraph、LLAMA和Chronos,以及GPU和加速器在图计算中的应用,如Medusa、CuSha、Gunrock以及CPU-GPU协同计算的gGraph和Garaph。图计算在学术和工业界持续火热,关注图数据处理的读者可进一步了解。
摘要由CSDN通过智能技术生成

本文是“图计算系统发展简史”系列文章的第五篇也是最后一篇,将介绍之前没有提及的图计算系统相关或是细分领域的一些工作。

图计算语言

之前我们提到的所有图计算系统都需要用户使用如C++、Java等程序设计语言来描述计算过程,很多时候不得不写比较长的代码,并且不同的系统通常有不同的API,可移植性非常低。因此,一个很自然的想法出现了:为什么不创建一套专门面向图计算的领域专用语言呢?

Green-Marl是首个这样的尝试,并且已被Oracle采纳用于部分产品/场景。除了编程语言所需的基本元素,Green-Marl补充了很多图计算需要的特定功能,例如顶点/边的描述,基于DFS/BFS的算子等等。根据用户的需要,同一个Green-Marl程序可以经由不同的编译器变成不同的可执行程序。

GraphIt与Green-Marl类似,但是将图计算程序分成了两个部分:计算和调度。计算部分描述图计算过程;调度部分用于对部分变量/算子使用可选的优化来提高计算效率。

SociaLite的目标则有较大不同,旨在用DataLog——一种描述式的逻辑编程语言来表达图计算过程;Grail与SociaLite有些类似,但是描述的语言换成了SQL,从而让用户可以使用关系型数据库进行图计算,无需再部署专门的图计算系统和学习相应的编程接口[1]。

[1] 需要注意的是,使用SQL描述的图计算过程会不可避免地涉及大量表与表之间的Join操作,尽管关系型数据库对此有了相当深入的优化,其效率依然无法与最先进的图计算系统相比。

动态图计算

很多时候,我们需要分析和处理的图数据并不是一成不变的:顶点和边上的属性会发生变化;拓扑结构也会发生改变。这种场景下&

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值