整体同步并行(BSP)系统的运行过程跟MapReduce过程非常相似。与MapReduce程序在它的处理循环结束后即可终止不同的是,BSP系统程序执行由一系列的超步(processes)(这个与Map处理的处理过程类似)组成,这些超步保持栅栏同步(synchronize on a barrier),向主节点发送数据并进行相关的信息交换(exchange relevant information)。每当一次迭代执行完毕,主节点会通知每个数据处理节点进行下一次迭代。
间隔通信是在并行计算处理中经常提到的概念。间隔通信指的是许多线程在分别执行各自的任务,这些线程在运行之前需要协商出一个检查点。这种模式是非常必要的,所有的处理线程在到达那个检查点之前就要决定是继续执行剩下的计算任务还是终止它们(并行的或者顺序的),以便所有线程确认何时完成数据处理任务。间隔同步(Synchronizing on a barrier)的方法在我们的日常生活中就经常使用。例如,一起拼车的伙伴们会常常商定在某一个特定的地方等车。整个等待过程的长短,取决于那个最晚到达该指定等车位置的人何时到达。
在BSP方法执行过程中,允许每个类似Map的处理过程缓存上次迭代的结果,如此即可大幅提高整个数据处理过程的吞吐量。我们会在本书第15章中讲解BSP系统。涉及了一些相关的迭代算法。