目的
在分布式图计算中的图分割方法一文中介绍了分布式图计算中的顶点分割方法来对图数据来进行分割,从而使得一个数据量巨大的图,能够在不同的分布式计算节点中进行平行计算。
但是当图数据被分割后进入不同计算节点进行计算的时候,由于在不同节点中对于同一个节点有可能有多个副本,这个节点副本之间如何进行数据交换协同也成为了一个难题,于是GAS模型就被提出来解决这个难题。
GAS模型
GAS模型主要分为3个阶段:Gather Apply Scatter
Gather阶段
Gather阶段的主要工作主要发生在各个计算节点,搜集这个计算节点图数据中某个顶点的相邻边和顶点的数据进行计算(例如在PageRank算法中计算某个顶点相邻的顶点的数量)。
Apply阶段
Apply阶段的主要工作是将各个节点计算得到的数据(例如在PageRank算法中各计算节点计算出来的同一节点的相邻节点数)统一发送到某一个计算节点,由这个计算节点对图节点的数据进行汇总求和计算,这样就得到这个图顶点的所有相邻节点总数。
Scatter阶段
Scatter阶段的主要工作是将中心计算节点计算的图顶点的所有相邻节点总数发送更新给各个计算节点中,这些收到更新信息的节点将会更新本计算节点中与这个图顶点相邻的顶点以及边的相关数据。
总结
通过GAS模型的不同阶段的配合,很完美的解决分布式图计算中的节点副本之间如何进行数据交换协同难题。
网友评论