libgrape-lite: 提供 GraphScope 的图分析能力

libgrape-lite是阿里团队基于GRAPE系统开发的高性能图分析C++库,它具有高性能、易用性好、模块化设计和自动并行化的特点。该库提供了一个简单的基于PIE的编程模型,支持图数据结构Fragment和消息更新模型,适用于大规模分布式图计算。目前,libgrape-lite是GraphScope项目的一部分,为图分析提供底层能力支持。
摘要由CSDN通过智能技术生成

GraphScope 的图分析引擎源自于 GRAPE 系统。本文介绍 GRAPE 的开源实现:高性能并行图分析 C++ 库 libgrape-lite。该图计算库具有性能优越、易用性好、模块化设计、支持自动并行化等特点,当前也是 GraphScope 项目的一个 submodule。

背景

图数据作为一种表示数据之间关系的抽象模型,可以直观、自然地表示现实世界中各种实体对象以及它们之间的关系。在大数据场景下,社交网络、交易数据、知识图谱、交通和通信网络、供应链和物流规划等都是典型的以图建模的例子。学术界和工业界现有的引擎有如 PowerGraph、Pregel、Spark GraphX 等。这些图计算引擎虽然可以解决大规模图计算的并行化问题,但是,其往往仅支持基于点中心模型的编程方法,需要编程者对相关领域有比较深刻的了解。这就使得图计算变成了少数算法专家的专利。而另一方面,图算法的研究已经进行了几十年,积累了大量算法,只是这些算法往往是串行化的,需要算法专家将其并行化后才能执行在以上这些平台上。

如何最大程度的复用现有的图计算算法?如何提升易编程性以降低图计算的门槛?如何保证并行图计算的正确性和终止性?为了解决以上问题,樊文飞教授与 GraphScope 团队核心成员在 2017 年研发了并在 SIGMOD'2017上发表了 GRAPE[1] (GRAPh computation Engine),一个全新的大规模分布式图计算引擎。GRAPE 获得了 SIGMOD'2017 最佳论文奖、VLDB'2017 最佳演示奖和 SIGMOD 研究亮点奖等奖项。

为了检验 GRAPE 系统在实际场景中的有效性与性能,近两年来我们在阿里巴巴集团广泛实践,支持了阿里集团内各种图计算相关业务,并取得了良好的效果。我们选择将其最核心的计算库精简版 libgrape-lite[2] 开源,与社区共同探索应用范式、多样化场景的更多实践。同时,libgrape-lite作为开源一站式图计算平台GraphScope的图分析引擎,提供了图分析的底层能力支持。

libgrape-lite 的设计

libgrape-lite 是一个近乎 Header-Only 的库,主要的函数和功能都在头文件中提供了带模板参数的实现,方便用户适配各种复杂数据类型。相比于现在已有的图计算系统,libgrape-lite 继承了 GRAPE 的各项优势,例如具有坚实的理论保证、易编程、自动并行化、高性能等。

libgrape-lite 的核心构成

libgrape-lite的核心构成部分如上图所示。

  • 图数据结构 Fragment。Fragment 是图数据的一个分区,也是 libgrape-lite 中一个计算节点上的图处理对象;

  • 管理通讯策略的 MessageMessager,负责显式或隐式的管理分区之间的消息通信和状态同步等;

  • 用户编写的应用主体逻辑 Application,在 Application 中,用户通过操作本地的 Fragment 或者通过 MessageManager 收发消息。具体应用的编程模型见下文。

  • 工作节点类 Worker,它负责载图/分区,调用应用程序对本地 Fragment 进

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值