并行计算第五章课后习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.并行算法设计主要有哪些方法,各种方法的特点是什么?
①串行程序的直接并行化:检查和开拓现有串行算法中固有的并行性,直接
将其并行化。一个显著优点是:算法的稳定性,收敛性等问题在串行算法中已有结论
②从问题描述开始设计并行算法:从问题本身的描述出发,从头设计一个全新的并
行算法
③借用已有的算法求解新问题:借助已有的并行算法求解新问题,方法描述:找出求解问题和某个已解决问题之间的联系;改造或利用已知算法应用到求解问题上。
2.并行算法的设计过程主要分为哪几个阶段,各阶段主要完成什么工作,各阶段
之间的有什么关系?
设计过程分为四步:任务划分(Partitioning 划分) 、通信分析(Communication 通信) 、任务组合(Agglomeration 组合) 、处理器映射(Mapping 映射)。
各阶段的任务:
划分:将计算任务分解成小任务,以尽量开拓并行执行的可能性;
通信:确定小任务需要进行的通信,为组合做准备;
组合:将一些小任务组合成大任务以减少通信开销;
映射:将组合后的任务分配到处理器上,其目标是使总执行时间和通信开销尽量小,使处理器的利用率尽量高
3.并行算法设计技术要有哪些?并说明各种技术主要的设计思想
划分设计技术、分治设计技术、平衡树设计技术、倍增设计技术、流水线设计技术、破对称技术
划分设计技术:划分技术的基本出发点是有效利用空闲处理器、大问题求解需要提高求解速度。具体划分方法包括均匀划分、平方根划分、对数划分、功能划分等。
分治技术:分治技术是一种问题求解的方法学,其思想是将原来的大问题分解成若干个特性相同的子问题分而治之。
流水线技术:设计思想是将算法流程划分成p个前后衔接的任务片断,每个任务片断的输出作为下一个任务片断的输人;所有任务片断按同样的速率产生出结果。
倍增技术:又称指针跳跃技术,适用于处理以链表或树之类表示的数据结构。每当递归调用时,要处理的数据之间的距离将逐步加倍,经过k步后就可完成距离为2*的所有数据的计算。
破对称技术:破对称就是要打破某些问题的对称性,常用于图论和随机算法问题。
平衡树技术:以树的叶结点为输人,中间结点为处理结点,由叶向根或由根向叶逐层进行并行处理。