- 3
- 0
- 约1.45千字
- 约 12页
- 2018-12-13 发布于天津
- 举报
并行算法的设计模式
并行算法的设计模式 基于数据并行的并行算法 基于任务图的并行算法 基于工作池的并行算法 基于主从模式的并行算法(Master-slave) 基于流水线模式的并行算法 混合模式并行算法 基于数据并行的并行算法 任务静态地映射到进程上,每个任务针对不同的数据集进行相同或类似的操作,常采用SIMD与SPMD的模式来编写程序 整个计算过程可能分为多个阶段,同一进程在每个阶段上处理的数据可能不同。在每个阶段之间,可能需要同步与通信 对基于数据并行模式的并行算法,在进行任务分解时,只要对数据域进行分解一般就可以充分保证负载平衡 基于数据并行的并行算法(续) 求Euclid范数的例子 基于任务图的并行算法 有的问题对应的任务可以分成很多个子任务,各子任务之间存在相关性,这时采用基于任务图的并行算法比较合适 一般对任务进行静态调度,以尽量提高数据访问的局部性,减少进程间的数据移动;有时候,也采用集中式动态调度方法,但也必须以任务依赖图为基础 并行快速排序、稀疏矩阵分解、以及许多基于分治策略的并行算法都采用这种设计模式 基于任务图的并行算法(续) 基于工作池的并行算法 适合采用工作池设计模式的问题: 将整个任务分解为子任务时,子任务的工作量难以预测 在执行某个子任务时,会动态地生成另外的子任务 一般采用动态负载平衡的方法来调度 基于工作池的并行算法(续) 基于主从模式的并行算法 进程分为两类:一类是
原创力文档

文档评论(0)