Automating Incremental Graph Processing with Flexible Memoization

Automating Incremental Graph Processing with Flexible Memoization

     不断增长的动态图数据需要高效的增量图处理技术。然而,增量图算法的开发具有挑战性。现有方法通常需要用户手动设计非平凡的增量运算符,或者针对特定计算类型选择不同的记忆策略,限制了其可用性和通用性。 鉴于这些挑战,本文提出Ingress,一种用于增量图处理的自动化系统。Ingress能够将批处理的以顶点为中心的算法增量化为它们的对应增量算法,而不需要用户重新设计逻辑或数据结构。底层的Ingress是一个自动增量框架,配备了四种不同的记忆策略,以支持各种以顶点为中心的计算,并优化内存利用率。我们确定了这些政策适用性的充分条件。Ingress通过验证这些条件自动为给定算法选择最佳匹配策略。除了易用性和通用性,Ingress的效率比最先进的增量图系统平均高出15.93倍(最高达147.14倍)。 

一研究问题:

这些突出了增量图计算的必要性。也就是说,我们应用批处理算法对原始图G计算一次结果,然后采用增量算法来调整旧结果以响应输入变化∆G到G。 

此外,给定很小的输入变化∆G,通常会发现对G的计算与用∆G更新的新图的重新计算之间有相当大的重叠。因此,通过使用被记忆的前一个结果,增量计算可以减少不必要的重新计算,通常效率更高

它们采用以顶点为中心的模型,在每个顶点上并行执行相同的用户定义函数,顶点之间通过消息传递交换更新。顶点中心模型可以很自然地表示迭代图计算。其次,这些系统使用不同的记忆策略,并达到不同程度的通用性

二 研究内容

为回答这些问题,本文开发了Ingress,一种以顶点为中心的自动增量图处理系统。Ingress的整体结构如图1所示。给定一个批处理算法a, Ingress验证a的特性,并自动推导出增量对应项a∆。它会选择一个合适的记忆引擎来记录运行时的中间状态。在接收到图的更新后,Ingress在记忆状态的帮助下执行一个∆来传递更新的结果。

Flexible memoization. Ingress支持灵活的记忆模式,并可以执行增量。Ingress支持一种灵活的memoization方案,可以执行增量,即在四种不同的memoization策略下从a推导出一个∆。

Automatic incrementalization. Ingress将通用的批处理以顶点为中心的算法增量化为其对应的增量算法。不需要手动调整数据结构或批处理数据的逻辑,从而提高了易用性 

High performance runtime.  除了易于使用和普遍减少内存消耗之外,Ingress还实现了高性能运行时

 FLEXIBLE MEMOIZATION

下面我们将介绍如何从给定的批处理中推导出具有不同记忆策略的增量算法A∆。我们介绍了采用无记忆策略(第4.1节)、记忆路径策略(第4.2节)和记忆顶点策略(第4.3节)递增A的充分条件。

1)Incrementalization via Memoization-Free 

     对于无记忆(MF)策略,推导出的增量算法应该直接从批运行的收敛状态启动两组消息,即取消消息和补偿消息,这两组消息分别用于处理无效消息和丢失消息。事实上,这适用于递增一类批处理算法a,其中(1)消息的影响可以通过它们的“逆”形式被取消;(2)信息的影响是可以清晰追踪的。接下来,我们将其形式化为执行MF策略的充分条件。

2)Incrementalization via Memoization-Path 

3)Incrementalization via Memoization-Vertex

INGRESS

Ingress借助SMT (Satisfiability Modulo Theories)求解器Z3[11]自动选择最优的记忆策略。SMT研究判断一个给定的一阶公式是否可满足的问题,即是否给未解释的函数和常数符号赋了适当的值以使公式为真。SMT求解器Z3断言一个公式,并可能返回"可满足" (sat), "不可满足" (unsat)或"未知"。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值