BSP
模型
一、
BSP
模型概念
BSP(Bulk Synchronous Parallel
,整体同步并行计算模型
)
是英国计算机科学家
Viliant
在上
世纪
80
年代提出的一种并行计算模型。
发布的一往篇论文
(
《
Pregel: A System for
Large-Scale Graph Processing
》
)
使得这一概念被更多人所认识,据说在
Google 80%
的程
序运行在
MapReduce
上,
20%
的程序运行在
Pregel
上。和
MapReduce
一样,
并
没有开源
Pregel
,
Apache
按
Pregel
的思想提供了类似框架
Hama
。
关于
BSP
,一般是下边这张图
:
光看这个图理解起来还是蛮吃力的。下面按我的理解做一些解释:
1.
Processors
指的是并行计算进程,它对应到集群中的多个结点,每个结点可以有多
个
Processor
;
2.
Local Computation
就是单个
Processor
的计算,
每个
Processor
都会切分一些结点作
计算;
3.
Communication
指的是
Processor
之间的通讯。我们接触的图计算往往需要做些递
归或是使用全局变量,在
BSP
模型中,对图结点的访问分布到了不同的
Processor
中,并且往往哪怕是关系紧密具有局部聚类特点的结点也未必会分布到同个
Processor
或同一个集群结点上,所有需要用到的数据都需要通过
Processor
之间的
消息传递来实现同步;
4.
Barrier Synchronization
又叫障碍同步或栅栏同步。
每一次同步也是一个超步的完成
和下一个超步的开始;
5.
Superstep
超步,这是
BSP
的一次计算迭代,拿图的广度优先遍历来举例,从起始
结点每往前步进一层对应一个超步。
6.