并行算法的设计与分析-ch2课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《并行算法的设计与分析-ch2课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 并行 算法 设计 分析 ch2 课件
- 资源描述:
-
1、Parallel Algorithms1/Ch2Y.Xu Copyright USTC2023-5-28Parallel Algorithms Chapter 2 Fundamental Techniques of Parallel AlgorithmsParallel Algorithms2/Ch22023-5-28Y.Xu Copyright USTC主要内容主要内容n2.1 平衡树方法平衡树方法n2.2 倍增技术倍增技术 n2.3 分治策略分治策略 n2.4 划分原理划分原理 n2.5 流水线技术流水线技术 Parallel Algorithms3/Ch22023-5-28Y.Xu Co
2、pyright USTC2.1 平衡树方法平衡树方法n设计思想设计思想树叶结点为输入,中间结点为处理结点,由叶向根或由根树叶结点为输入,中间结点为处理结点,由叶向根或由根向叶逐层并行处理。向叶逐层并行处理。n示例示例求最大值求最大值计算前缀和计算前缀和Parallel Algorithms4/Ch22023-5-28Y.Xu Copyright USTCn算法算法2.1 SIMD-SM上求最大值算法上求最大值算法Begin for k=m-1 to 0 do for j=2k to 2k+1-1 par-do Aj=maxA2j,A2j+1 end for end forend时间分析时间分析
3、t(n)=mO(1)=O(logn)p(n)=n/2c(n)=O(nlogn)非成本最优2.1 平衡树方法平衡树方法Parallel Algorithms5/Ch22023-5-28Y.Xu Copyright USTC前缀和前缀和n问题定义问题定义n个元素个元素x1,x2,xn,前缀和是,前缀和是n个部分和:个部分和:Si=x1*x2*xi,1inin 这里这里*可以是或可以是或n串行算法:串行算法:Si=Si1*xi 计算时间为计算时间为 O(n)n并行算法:并行算法:p56算法算法2.2 SIMD-SM上非递归算法上非递归算法(高层描述高层描述)p58算法算法2.3 SIMD-SM上非递
4、归算法上非递归算法(底层描述底层描述)令令Ai=xi,i=1n,Bh,j和和Ch,j为辅助数组为辅助数组(h=0logn,j=1n/2h)数组数组B记录由叶到根正向遍历树中各结点的信息记录由叶到根正向遍历树中各结点的信息(求和求和)数组数组C记录由根到叶反向遍历树中各结点的信息记录由根到叶反向遍历树中各结点的信息(播送前缀和播送前缀和)2.1 平衡树方法平衡树方法Parallel Algorithms6/Ch22023-5-28Y.Xu Copyright USTCp56 算法算法2.2 SIMD-SM上非递归算法上非递归算法begin (1)for j=1 to n par-do /初始化初
5、始化 B0,j=Aj end if (2)for h=1 to logn do /正向遍历正向遍历 for j=1 to n/2h par-do Bh,j=Bh-1,2j-1*Bh-1,2j end for end for 时间分析时间分析:(1)O(1)(2)O(logn)(3)O(logn)=t(n)=O(logn),p(n)=n,c(n)=O(nlogn)(3)for h=logn to 0 do /反向遍历反向遍历 for j=1 to n/2h par-do (i)if j=even then /该结点为其父结点的右儿子该结点为其父结点的右儿子 Ch,j=Ch+1,j/2 end i
6、f (ii)if j=1 then /该结点为最左结点该结点为最左结点 Ch,1=Bh,1 end if (iii)if j=odd1 then /该结点为其父结点的左儿子该结点为其父结点的左儿子 Ch,j=Ch+1,(j-1)/2*Bh,j end if end for end for end2.1 平衡树方法平衡树方法Parallel Algorithms7/Ch22023-5-28Y.Xu Copyright USTC主要内容主要内容n2.1 Balanced Trees Methodn2.2 Doubling Techniques n2.3 Divide-and-Conquer Str
7、ategy n2.4 Partitioning Principle n2.5 Pipelining Techniques Parallel Algorithms8/Ch22023-5-28Y.Xu Copyright USTC主要内容主要内容n2.1 平衡树方法平衡树方法n2.2 倍增技术倍增技术 n2.3 分治策略分治策略 n2.4 划分原理划分原理 n2.5 流水线技术流水线技术 Parallel Algorithms9/Ch22023-5-28Y.Xu Copyright USTCn设计思想设计思想又称指针跳跃又称指针跳跃(pointer jumping)技术,特别适合于处理链技术,特别
8、适合于处理链表或有向树之类的数据结构;表或有向树之类的数据结构;当递归调用时,所要处理数据之间的距离逐步加倍,经过当递归调用时,所要处理数据之间的距离逐步加倍,经过k步后即可完成距离为步后即可完成距离为2k的所有数据的计算。的所有数据的计算。n示例示例表序问题表序问题求森林的根求森林的根2.2 倍增技术倍增技术Parallel Algorithms10/Ch22023-5-28Y.Xu Copyright USTC表序问题:表序问题:n问题描述问题描述 n个元素的列表个元素的列表L,求出每个元素在,求出每个元素在L 中的次第号中的次第号(秩或位序或秩或位序或rank(k),rank(k)可视为
9、元素可视为元素k至表尾的距离;至表尾的距离;n示例:示例:n=7 (1)pa=b,pb=c,pc=d,pd=e,pe=f,pf=g,pg=g ra=rb=rc=rd=re=rf=1,rg=0 (2)pa=c,pb=d,pc=e,pd=f,pe=pf=pg=g ra=rb=rc=rd=re=2,rf=1,rg=0 (3)pa=e,pb=f,pc=pd=pe=pf=pg=g ra=4,rb=4,rc=4,rd=3,re=2,rf=1,rg=0 注:递归计算位序注:递归计算位序r (4)pa=pb=pc=pd=pe=pf=pg=g ra=6,rb=5,rc=4,rd=3,re=2,rf=1,rg=0
10、2.2 倍增技术倍增技术Parallel Algorithms11/Ch22023-5-28Y.Xu Copyright USTC表序问题:表序问题:n算法:算法:P60算法算法2.4 (1)并行做:初始化并行做:初始化pk和和distancek /O(1)(2)执行执行 次次 /O(logn)(2.1)对对k并行地做并行地做 /O(1)如果如果k的后继不等于的后继不等于k的后继之后继,则的后继之后继,则 (i)distancek=distancek+distancepk (ii)pk=ppk (2.2)对对k并行地做并行地做 rankk=distancek /O(1)运行时间:运行时间:t(
11、n)=O(logn)p(n)=nnlog2.2 倍增技术倍增技术Parallel Algorithms12/Ch22023-5-28Y.Xu Copyright USTC求森林的根求森林的根n问题描述问题描述 一组有向树一组有向树F中中,如果如果是是F中的一条弧,则中的一条弧,则pi=j(即即j是是i的双亲的双亲);若;若i为根,则为根,则pi=i。求每个结点。求每个结点j(j=1n)的树根的树根sj.n示例示例初始时初始时P1=p2=5 p3=p4=p5=6 P6=p7=8 p8=8P9=10 p10=11 p11=12 p12=13 p13=13 si=pi 2.2 倍增技术倍增技术Par
12、allel Algorithms13/Ch22023-5-28Y.Xu Copyright USTC求森林的根求森林的根n示例示例 第一次迭代后第一次迭代后 第二次迭代后第二次迭代后n算法算法:p61算法算法2.5n运行时间运行时间:t(n)=O(logn)2.2 倍增技术倍增技术Parallel Algorithms14/Ch22023-5-28Y.Xu Copyright USTC主要内容主要内容n2.1 Balanced Trees Methodn2.2 Doubling Techniques n2.3 Divide-and-Conquer Strategy n2.4 Partition
13、ing Principle n2.5 Pipelining Techniques Parallel Algorithms15/Ch22023-5-28Y.Xu Copyright USTC主要内容主要内容n2.1 平衡树方法平衡树方法n2.2 倍增技术倍增技术 n2.3 分治策略分治策略 n2.4 划分原理划分原理 n2.5 流水线技术流水线技术 Parallel Algorithms16/Ch22023-5-28Y.Xu Copyright USTCn设计思想设计思想将原问题划分成若干个相同的子问题分而治之,若子问题仍将原问题划分成若干个相同的子问题分而治之,若子问题仍然较大,则可以反复递归
展开阅读全文