搜档网

搜档网

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

GraphLab与Pregel对比

一、GraphLab

GraphLab与Pregel对比

示例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相关主题