大数据技术原理与应用作业十一
1.试述BSP模型中超步的3个组件及具体含义。
- 局部通信。每个参与的处理器都有自身的计算任务,它们只读取存储在本地内存中的值,不同处理器的计算任务都是异步并且独立的。
- 通信。处理器群相互交换数据,交换的形式是,由一方发起推送(Put)和获取(Get)操作
- 栅栏同步。当一个处理器遇到“路障”(或栅栏),会等其他所有的处理器完成它们的计算步骤;每一次同步也是一个超步的完成和下一个超步的开始。
2.Pregel为什么选择一种纯消息传递模型?
采用这种做法主要基于以下两个原因:
- 消息传递模型已经具有足够的表达能力,没有必要使用远程读取或共享内存的方式。
- 有助于提升系统整体性能。大型图计算通常是由一个集群完成的,集群环境中执行远程数据读取会有较高的时间延迟;Pregel的消息模式采用异步和批量的方式传递消息,因此可以缓解远程读取的延迟。
3.给定一个连通图,如图11-11所示。请给出采用Pregel模型计算图中顶点最大值的计算过程。其中寻找最大值的函数可以通过继承Pregel中已预定义好的一个基类Vertex类实现,请实现该函数。
class MaxValue
: public Vertex<int, int, int> {
void CoMapReduceute(MessageIterator* msgs) {
int maxdist = vertex_id();
for(; !msgs->Done(); msgs->Value())
maxdist = max(vertex_id(), msgs->Value());
if (maxdist > GetValue()) {
*MutableValue() = maxdist;
OutEdgeIterator iter = GetOutEdgeIterator();
for (; !iter.Done(); iter.Next())