特点:
数据关联性强;
常常表现出比较差的内存访问局部性
针对单个顶点的处理工作过少
计算过程中伴随着并行度的改变
大型图计算主要包括两种:
基于遍历算法的、实时的图数据库,如Neo4j、OrientDB、DEX和 Infinite Graph;
以图顶点为中心的、基于消息传递批处理的并行引擎,如GoldenOrb、Giraph、Pregel和Hama,这些图处理软件主要是基于BSP模型实现的并行图处理系统;
BSP:一次BSP(Bulk Synchronous Parallel Computing Model,又称“大同步”模型)计算过程包括一系列全局超步(所谓的超步就是计算中的一次迭代),每个超步主要包括三个组件:
局部计算:每个参与的处理器都有自身的计算任务
通讯:处理器群相互交换数据
栅栏同步(Barrier Synchronization):当一个处理器遇到“路障”(或栅栏),会等到其他所有处理器完成它们的计算步骤
“三驾马车”:
Caffeine:大规模网页索引构建
Dremel:实时交互
Pregel:基于BSP并行图计算处理
Pregel是一种基于BSP模型实现的并行图处理系统
为了解决大型图的分布式计算问题,Pregel搭建了一套可扩展的、有容错机制的平台,该平台提供了一套非常灵活的API,可以描述各种各样的图计算
Pregel作为分布式图计算的计算框架,主要用于图遍历、最短路径、PageRank计算等等