美文网首页
分布式图计算模型GAS(Gather-Apply-Scatter

分布式图计算模型GAS(Gather-Apply-Scatter

作者: 老羊_肖恩 | 来源:发表于2019-09-26 09:55 被阅读0次

      GAS(Gather-Apply-Scatter)是除Pregel之外,另外一种遵循BSP模式的分布式图计算模型。PowerGraph 提出了一种与Pregel类似的计算模型 GAS。 GAS 和Pregel一样都满足每个顶点上的计算只访问其邻域顶点的局部特性,但 GAS 将顶点上计算的过程明确地分割成了Gather,Apply,和 Scatter 三个步骤,并通过强制要求 Gather 阶段对每一条边的结果进行聚合时的操作必须满足交换律和结合律,使得各顶点上计算的并行化可以实现。下面的内容会对GAS计算模型进行详细的解读。

    GAS分布式计算模型

      GAS计算模型可以看作是针对Pregel这种以顶点为中心的图计算模式的一种细粒度改造,通过将计算过程进行进一步划分来提升计算过程的并发性。GAS模型将以顶点为中心的图计算更新函数明确地划分为三个阶段:Gather,Apply和Scatter。通过这种划分,将原有Pregel模型中定义在节点上的计算过程进行划分,下面通过详细介绍这三个阶段来完整呈现GAS计算模型的过程。

    Gather

      Gather阶段主要功能是规约(reduce),其上定义了一个sum函数,用于规约当前顶点通过边收集到的信息。用户通过自定义sum函数,指定了每个定点上的规约功能。如挑选出相邻边传递消息的最小值,或最大值。这里的sum不是一个简单求和的意思,更确切地说,是将从周围收集到地一系列信息整合成一个用户想要地结果,并输出给下一个阶段。

    Apply

      Apply阶段,主要是针对每个顶点,将Gather阶段地结果应用到当前顶点上,即用户通过自定义策略来根据Gather的结果更新当前顶点地值。

    Scatter

      Scatter阶段,根据Apply阶段的结果,将当前顶点的最新结果更新到该顶点的边上。

    GAS Decomposition

      GAS模型的分解过程如上图所示。简单来说,GAS就是一个收集信息,归纳信息,并重新对外给出新信息的过程。相比叫Pregel,GAS将Pregel中的每个SuperStep一分为三,每个SubStep上对应一个用户自定义的操作。一方面使得用户的自由度更大,另一方面能明显提升个SubStep直接的并行计算性能,特别是当顶点关联的边非常大的时候。GAS计算模式在图计算框架PoweGraph和GraphLab中得到了很好的应用,并且在大规模关系网络或复杂图上取得了非常不错的效果。下面我们给出PoweGraph中利用GAS模式实现PageRank算法的过程。


    PageRank in PowerGraph

    以上就是GAS模型的全部内容,以后我们还会带来更多图计算框架中的并行计算模型。

    相关文章

      网友评论

          本文标题:分布式图计算模型GAS(Gather-Apply-Scatter

          本文链接:https://www.haomeiwen.com/subject/jqriectx.html