吉林大学研究所课程-并行计算-第4章-并行计算的基本设计技术课件_第1页
吉林大学研究所课程-并行计算-第4章-并行计算的基本设计技术课件_第2页
吉林大学研究所课程-并行计算-第4章-并行计算的基本设计技术课件_第3页
吉林大学研究所课程-并行计算-第4章-并行计算的基本设计技术课件_第4页
吉林大学研究所课程-并行计算-第4章-并行计算的基本设计技术课件_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、并行算法的基本设计技术4.1 PA的一般设计方法4.2 PA的基本设计过程4.3 PA的常用设计技术PA的一般设计方法串行算法直接并行化借用法全新的方法串行算法直接并行化串行算法并非都可并行化好的串行算法不一定直接是好的并行算法很多数值运算都可直接并行化串行算法直接并行化步骤 检测和开发现有程序内在的并行性并行编码并行实现借用法找问题与原有方法之间的关系设计相似算法有丰富的经验基础全新的方法根据一个给定问题的描述,重新设计或发明一个并行算法一般可以得到较好的并行算法是一个具有挑战性和创新性工作设计者应有较好的理解能力和设计背景并行算法的基本设计技术4.1 PA的一般设计方法4.2 PA的基本设

2、计过程4.3 PA的常用设计技术划分(P)目的开发并行性的可行性方法数据分解+功能分解规划常用的数据,通信频率的进程分为一组判据(Check list 的设计问题)通信(C)目的根据任务执行的需要交换数据后;协调任务的执行通信要求在域分解中的确定通信要求在功能分解时,容易确定通信需求通信(C)通信模式局部通信 结构化 静态 同步全局通信 非结构化 动态 异步判据(测试表的设计问题)匹配(M)目的将每个任务分配到一个处理机上,降低通信开销和执行时间,提高处理机利用率判据(涉及策略,方法和测试表设计等问题)并行算法的基本设计技术4.1 PA的一般设计方法4.2 PA的基本设计过程4.3 PA的常用

3、设计技术Outline4.3.1 划分技术4.3.2 分治策略4.3.3 流水线技术4.3.4 倍增技术4.3.5 破对称技术4.3.6平衡树算法划分方法基本出发点有效利用空闲处理器大问题求解需要提高求解速度具体划分方法均匀划分法平方根划分对数划分随机划分功能划分对数划分法举例问题描述设两非降数组 A=(a1,a2,an) B=(b1,b2,bm)其中logm和K(m)=m/logm都是整数要求:K(m)配对A和B的子序列(Ai, Bi),使得Bi=logm, Ai=n和对于所有1ik(m)-1,Ai和Bi中的每一个元素都大于Ai-1和Bi-1中的每一个元素对数划分法举例定义Rank(x:X)

4、表示x在X中的位序号方法描述先找B序列划分点 b1*logm b2*logm b(i+1)*logm再找A序列划分点 a(b1*logm:A) a(b2*logm:A) a(b(i+1)logm:A)然后分组归并对数划分法举例-实现Begin j(0)0;j(k(m)-n for i=1 to k(m)-1 par_do (2.1) rank bi logm in A using binary search (2.2) j(i)rank(bi.logm:A) End for for i=0 to k(m)-1 par_do (3.1) Bi(bi.logm+1,b(i+1)logm) (3.2

5、) Ai230011204-070111011-1141110215-220010000-0151111011-140100000-050101011-160110113-081000102-2101010000-0111011011-1121100000-091001204-1131101215-0114215456810119131237241501013201450201201010010102Outline4.3.1 划分方法4.3.2 分治策略4.3.3 流水线技术4.3.4 倍增技术4.3.5 破对称技术4.3.6平衡树算法平衡树算法两个例子求最大值求前缀和实例-求最大值问题描述令

6、n=2m,A是一个2n维德数组;待求最大值n个数开始存放A(n),A(n+1),A(2n-1);将求得的最大值于A(1)算法输入:n=2m个数存在数组A(n:2n-1)中输出:最大值置于A(1)中实例-求最大值算法实现Begin For k=m-1 to 0 do For j=2k to 2k+1-1 par_do A(j)MaxA(2j),A(2j+1) End for End forEnd实例-求最大值复杂度分析T(n)=O(logn)p(n)=n/2实例-求最大值例:(4,6,8,0)这里n=4,m=2,(n=2m), A=(0,0,0,0,4,6,8,0)解:K=m-1=1时,j=2k

7、=2时,A(j)=A(2)=maxA(4),A(5)=6 4 6 j=2k+1或-1=3时,A(j)=A(3)=maxA(6),A(7)=8 8 0 K=0时, j=1 to 1 A(1)=maxA(2),A(3)=8 6 8 实例求前缀和设SIMO*字模型中有 p=2qn2k 个处理器p1,pp 令l=n/p=2k-q,将输入数组划分成P个子数组,使得处理器ps负责处理器子数组A(l-(s-1)+1),A(l(s-1)+2),s(ls)在二叉树高度H上,正向和反向便利中所产生的值B(h,.)和C(h,.)也以类似方式非配给各处理器实例求前缀和实例求前缀和算法实现Begin (1) for j

8、=1 to l=n/p do B(0,l(s-1)+j)=0) then for j=2k-h-q(s-1)+1 to 2k-h-qs doB(h,j)-B(h-1,2j-1)*B(h-1,2j) end for end if (2.2) if (s=2k-h) then B(h,s)=0) then for j=2k-h-q(s-1)+1 to 2k-h-qs do (1) if(j=even) then C(h,j)-C(h+1,j/2) end if (2) if(j=1) then C(h,1)1 then C(h,j)-C(h+1,(j-1)/2)*B(h,j) end if end

9、 for (3.2) if s2k-h then (1) if(s=even) then C(h,s)-C(h+1,s/2) end if (2) if(s=1) then C(h,1)1) then C(h,s)-C(h+1,(s-1)/2)*B(h,s) end if end if end for end实例求前缀和实例:n=8,p=2时求前缀和处理分布情况:p1p1p1p1p1p1p1p1p2p2p2p2p2p2p2实例求前缀和以p2情况为例第一步:p2将设置B(0,5)=A(5),(0,6)=a(6) B(0,7)=A(7),(0,7)=a(7)第二步:正向遍历时,p2在h=1,2时是活动的,在 h=3是空闲的,p2通过循环B(1,3),B(1,4) 和B(3,2)第三步:反向遍历时,p2在h=3时是空闲的,而在 h=2时是活动的因此,p2将产生:C(2,2),C(1,3),C(1,4),C(0,5),C(0,6),C(0,7),C(0,8)作业1. 在划分设计技术

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论