目的
在分布式计算框架中,首先要解决数据的分割,分割后的数据被输入到各个计算节点中进行并行计算。
在分布式图计算框架中,如何将整个图的数据分割,通常有以下两种方法:基于顶点的分割和基于边的分割。
边分割
边分割如上图所示,边分割就是将图数据按照边进行分割,将分割后的子图数据输入到不同的运算节点上进行并行计算。
边分割过程中,需要将图中的边和节点进行镜像复制,各个运算节点在运算的时候,需要不断的通信和更新图的边的状态。
谷歌提出的Pregel分布式计算框架用的就是这种分割方式。
顶点分割
顶点分割如上图所示,顶点分割就是将图数据按照顶点进行分割,分割后与顶点相邻的顶点会被在另外一个节点进行复制。
GraphLab分布式计算框架采用的就是顶点分割方式
对比分析
从上面分割实例中可以看出,边分割结果多了4个顶点副本和3个边的副本,而顶点分割结果只多了2个顶点副本,在数据量大的应用场景下,顶点分割有明显的优势。
边分割后的副本数量增多,导致分布式各计算节点进行状态更新的通信量会明显的增加,这样也带来了不小的资源开销。
目前,采用顶点分割方式的分布式图计算框架优势比较明显。
网友评论