BSP编程模型与业务流程分析详解
1. BSP编程模型概述
BSP(Bulk Synchronous Parallel)编程模型是一种迭代的无共享并行计算模型,由Valiant于1990年首次提出,它将应用程序的并行化抽象为三个阶段:计算、通信和同步。每个迭代(或超级步)按顺序运行这三个步骤,并重复执行,直到应用程序完成计算。该模型并非绑定于特定的编程模型或硬件,后续也出现了多种变体,如扩展BSP、可分解BSP等,旨在改善通信成本、提高数据局部性和降低同步成本。
BSP模型可用于多种应用,包括不同实体之间的点对点消息传递、快速傅里叶变换、数据排序、PageRank和图着色等。虽然MPI可用于实现BSP,但也有一些通信库,如BSPlib,能以自定义消息传递协议来支持BSP模型。
2. BSP模型的三个阶段
- 计算阶段 :此阶段执行用户逻辑,从用户代码生成多个独立的计算单元,并在输入数据集上并发运行。每个计算单元有唯一ID,被分配输入的一个不同子集,只能访问其本地内存。为确保计算单元的自主性,用户代码必须自包含,不依赖与其他单元的显式同步,这样计算单元可随机调度到任何可用资源上,不影响代码正确性。
- 通信阶段 :允许计算单元直接向其他单元发送固定大小的消息(点对点通信)。该阶段处理消息的缓冲技术、对象序列化和路由协议,以确保消息成功传递到计算单元。某一迭代中发送的消息仅在下一迭代中对目标计算单元可用。通信阶段的执行可与计算阶段重叠,以提高系统整体性能。研究提出了多种技术来改进此阶段性能,如消息聚合、广播和利用远程直接内存访问(RDMA)降低网络成本。
超级会员免费看
订阅专栏 解锁全文
298

被折叠的 条评论
为什么被折叠?



