Pregel(图计算)技术原理(图计算)技术原理
图计算简介
图结构数据:
许多大数据都是以大规模图或网络的形式呈现。
许多非图结构的大数据,也常常会被转换为图模型后进行分析。
图数据结构很好地表达了数据之间的关联性。
关联性计算是大数据计算的核心——通过获得数据的关联性,可以从噪音很多的海量数据中抽取有用的信息。
传统图计算解决方案的不足之处:
很多传统的图计算算法都存在以下几个典型问题:
常常表现出比较差的内存访问局部性
针对单个顶点的处理工作过少
计算过程中伴随着并行度的改变
针对大型图(比如社交网络和网络图)的计算问题,可能的解决方案及其不足之处具体如下:
为特定的图应用定制相应的分布式实现
基于现有的分布式计算平台进行图计算
使用单机的图算法库:比如BGL、LEAD、NetworkX、JDSL、Standford GraphBase和FGL等
使用已有的并行图计算系统:比如,Parallel BGL和CGM Graph,实现了很多并行图算法
图计算通用软件:
针对大型图的计算,目前通用的图计算软件主要包括两种:
第一种主要是基于遍历算法的、实时的图数据库,如Neo4j、OrientDB、DEX和 Infinite Graph。
第二种则是以图顶点为中心的、基于消息传递批处理的并行引擎,如GoldenOrb、Giraph、Pregel和Hama,这些图处理软件
主要是基于BSP模型实现的并行图处理系统。
一次BSP(Bulk Synchronous Parallel Computing Model,块同步并行计算模型,又称“大同步”模型)计算过程包括一系列全局超
步(所谓的超步就是计算中的一次迭代),每个超步主要包括三个组件:
1.局部计算:每个参与的处理器都有自身的计算任务。
2.通讯:处理器群相互交换数据。
3.栅栏同步(Barrier Synchronization):当一个处理器遇到“路障”(或栅栏),会等到其他所有处理器完成它们的计算步骤。
图:一个超步的垂直结构图