搜档网

搜档网

当前位置:搜档网 > GraphLab与Pregel对比

GraphLab与Pregel对比

一、

GraphLab与Pregel对比

GraphLab

示例 1:GraphLab 完成对 V0邻接顶点的求和计算

示例中,需要完成对 V0邻接顶点的求和计算,串行实现中, V0对其所有的邻接点进行遍历, 累加求和。 而 GraphLab 中, 将顶点 V0进行切分, 将 V0的边关系以及对应的邻接点部署在两 台处理器上,各台机器上并行进行部分求和运算,然后通过 master 顶点和 mirror 顶点的通信 完成最终的计算。

每个顶点每一轮迭代经过 gather->apple->scatter三个阶段。

1) Gather 阶段

工作顶点的边 (可能是所有边,也有可能是入边或者出边 ) 从领接顶点和自身收集数据,记为 gather_data_i,各个边的数据 graphlab 会求和,记为 sum_data。这一阶段对工作顶点、 边都是只读的。

2) Apply 阶段

Mirror 将 gather 计算的结果 sum_data发送给 master 顶点, master 进行汇总为 total 。 Master 利用 total 和上一步的顶点数据,按照业务需求进行进一步的计算,然后更新 master 的顶点数据,并同步 mirror 。 Apply 阶段中,工作顶点可修改,边不可修改。

3) Scatter 阶段

工作顶点更新完成之后,更新边上的数据,并通知对其有依赖的邻结顶点更新状态。这 scatter 过程中,工作顶点只读,边上数据可写。

TOP相关主题