计算机软件及应用并行计算算法.pptx
《计算机软件及应用并行计算算法.pptx》由会员分享,可在线阅读,更多相关《计算机软件及应用并行计算算法.pptx(144页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、串行算法的直接并行化串行算法的直接并行化设计方法描述快排序算法的并行化第1页/共144页 设计方法的描述设计方法的描述方法描述发掘和利用现有串行算法中的并行性,直接将串行算法改造为并行算法。许多并行编程语言都支持通过在原有的串行程序中加入并行原语(例如某些通信命令等)的方法将串行程序并行化。第2页/共144页设计方法的描述设计方法的描述评注由串行算法直接并行化的方法是并行算法设计的最常用方法之一;不是所有的串行算法都可以直接并行化的;某些串行算法有内在的串行性,比如在某些串行算法中,每一步都要用到上一步的结果。只有当上一步完全结束后,下一步才能开始。这样,各步之间就不能并行,只能考虑其它的并行
2、化办法。例如模拟退火算法,每个温度下迭代的出发点是上一个温度下迭代的结束点。这样就很难直接将各个温度的迭代并行起来。第3页/共144页设计方法的描述设计方法的描述评注一个好的串行算法并不能并行化为一个好的并行算法;另一方面,不好的串行算法并行化后也可能是优秀的并行算法。例如,串行算法中是没有冗余计算的。但是在并行算法中,使用适当的冗余计算也可能使并行算法效率更高。加入冗余计算的并行算法就可能比直接由串行算法并行化得到的算法效率高。又比如,枚举不是一种好的串行算法。但是将其直接并行化后可以得到比较好的并行算法。许多数值串行算法可以并行化为有效的数值并行算法。第4页/共144页设计方法的描述设计方
3、法的描述假设我们想用求和的方法进行数值积分。设被积函数为f(x),积分区间为a,b。为了积分,将区间a,b均匀分成N个小区间,每个小区间长 ,根据积分的定义 是第i 个小区间左端点的坐标,而 是f(x)在第i 个小区间上积分的近似值。如果使用串行算法,可以用循环和叠加完成上述求和。这个串行算法可以直接并行化。第5页/共144页设计方法的描述设计方法的描述假设有k台处理器,可以把这N个小区间上的计算任务分到各处理器:0号处理器负责第 个小区间上的计算和累加,1号处理器负责第 个小区间上的计算和累加,k-1号处理器负责第 个小区间上的计算和累加。k个处理器并行地计算出部分和,然后再把结果加到一起。
4、第6页/共144页设计方法的描述设计方法的描述第7页/共144页 快排序算法的并行化快排序算法的并行化算法 PRAM-CRCW上的快排序二叉树构造算法 输入:序列(A1,An)和n个处理器 输出:供排序用的一棵二叉排序树 Begin (1)for each processor i do (2)repeat for each processor iroot do (1.1)root=i if(AiAfi)(Ai=Afiifi)then (1.2)fi=root (2.1)LCfi=i (1.3)LCi=RCi=n+1 (2.2)if i=LCfi then exit else fi=LCfi e
5、ndif end for else (2.3)RCfi=i (2.4)if i=RCfi then exit else fi=RCfi endif endif end repeat End第8页/共144页 从问题描述开始设计并行算从问题描述开始设计并行算法法方法描述从问题本身描述出发,不考虑相应的串行算法,设计一个全新的并行算法。评注挖掘问题的固有特性与并行的关系;设计全新的并行算法是一个挑战性和创造性的工作;利用串的周期性的PRAM-CRCW算法是一个很好的范例;第9页/共144页并行串匹配算法并行串匹配算法给定长度为n的正文串正文串T和长度为m的模式串模式串P,找出P在T中所有出现的位置
6、称为串匹配问题。研究发现,两串能否匹配是与串本身的特性有关的。这种特性,就是串的周期性周期性。串可以分为周期的和非周期的。可以引入见证函数见证函数(Witness Function)来判断串的周期性。确定了串的周期性后就可以先研究非周期串的匹配,然后在此基础上再研究周期串的匹配。第10页/共144页并行串匹配算法并行串匹配算法对于非周期串的研究,就是如何利用见证函数快速地找出P在T中的位置。为此,引入竞争函数竞争函数duel(p,q)duel(p,q)。先把正文串分成小段,借助于见证函数并行地计算竞争函数值,找出那些可能匹配的位置。然后逐步扩大正文串分段的长度,并计算竞争函数值,在可能匹配的位
7、置中排除那些不可能匹配的位置。最后在剩下的可能位置中验证哪些是符合要求的位置。第11页/共144页并行串匹配算法并行串匹配算法假设T=abaababaababaababaababa,n=23,P=abaababa,m=8。由见证函数可知P是非周期串。因为P只可能在前16个位置上与T匹配,所以在找所有“可能位置”时只考虑T的前16个字符。匹配时,先要计算见证函数值,然后由其计算 的值,找到可能匹配的位置。计算duel(p,q)时,可以所有的块并行计算。先将P和T分成长度为2的块,用模式块(ab)与正文块(ab)(aa)(ba)(ba)(ab)(ab)(aa)(ba)进行匹配可知模式块(ab)在位
8、置1,4,6,9,11,14,16(即duel(p,q)的获胜者)出现匹配。再把P与T划分成长度为4的块,用模式块(abaa)与正文块(abaa)(baba)(abab)(aaba)进行匹配,可知在位置1,6,11,16出现匹配(位置4、9、14被淘汰);最后用模式串(abaababa)在正文串的位置1,6,11,16进行检查,排除那些不匹配的位置。本例中这4个位置都匹配。第12页/共144页借用已有算法求解新问题借用已有算法求解新问题设计方法描述利用矩阵乘法求所有点对间最短路径第13页/共144页 设计方法的描述设计方法的描述方法描述找出求解问题和某个已解决问题之间的联系;改造或利用已知算法
9、应用到求解问题上。评注 这是一项创造性的工作;使用矩阵乘法算法求解所有点对间最短路径是一个很好的范例。第14页/共144页利用矩阵乘法求所有点对间最短路利用矩阵乘法求所有点对间最短路径径计算原理设在一有向图中,各弧都赋予了非负整数权。图中一条路径的长度长度定义为该路径上所有的弧的权的和。图中两结点之间的最短路径最短路径是指它们之间长度最短的路径。设G为一个含有n个结点的有向图。矩阵W=(wij)是G中各弧上的权构成的矩阵,即W的元素wij是G中结点vi到结点vj的弧上的权(如果vi到vj无弧,则令wij=)。我们的目的是计算G中所有结点对之间的最短路。为此,记dij为结点vi到结点vj的最短路
10、长,并记D=(dij)。用dij k表示从vi到vj至多经过k-1个中间结点的所有路径的长度的最小值,记Dk=(dijk)。因此dij 1=wij(ij),dij 1=0(i=j)。如果假设G中不包含权为负的有向圈,则dij=dij n-1,D=Dn-1第15页/共144页利用矩阵乘法求所有点对间最短路利用矩阵乘法求所有点对间最短路径径根据组合最优原理(Combinatorial Optimization Principle)有 从而可以从D1 开始,逐次计算出D2,D4,D8,Dn-1=D。为了从Dk/2计算Dk,可以借用标准的矩阵乘法。矩阵乘法执行的计算是 只需将矩阵乘法中的乘法操作换成加
11、法操作,把矩阵乘法中的求和换求最小值操作即可。第16页/共144页利用矩阵乘法求所有点对间最短路利用矩阵乘法求所有点对间最短路径径计算原理 有向图G=(V,E),边权矩阵W=(wij)nn,求最短路径长度矩阵D=(dij)nn,dij为vi到vj的最短路径长度。假定图中无负权有向回路,记d(k)ij为vi到vj至多有k-1个中间结点的最短路径长,Dk=(d(k)ij)nn,则 (1)d(1)ij=wij 当 ij(如果vi到vj之间无边存在记为)d(1)ij=0 当 i=j (2)无负权回路 dijd(n-1)ij (3)利用最优组合原理:d(k)ij=min1lnd(k/2)il+d(k/2
12、)lj 视:”+”“”,“min”“”,则上式变为 d(k)ij=1lnd(k/2)ild(k/2)lj (4)应用矩阵乘法:D1 D2 D4 D2logn (=Dn)SIMD-CC上的并行算法:p139算法5.5第17页/共144页并行算法并行算法2 基本设计技术第18页/共144页并行算法的基本设计技术并行算法的基本设计技术划分设计技术分治设计技术平衡树设计技术倍增设计技术流水线设计技术第19页/共144页划分设计技术划分设计技术均匀划分技术方根划分技术对数划分技术功能划分技术第20页/共144页 均匀划分技术均匀划分技术划分方法n个元素A1.n分成p组,每组A(i-1)n/p+1.in/
13、p,i=1p示例:MIMD-SM模型上的PSRS排序 begin (1)均匀划分:将n个元素A1.n均匀划分成p段,每个pi处理 A(i-1)n/p+1.in/p (2)局部排序:pi调用串行排序算法对A(i-1)n/p+1.in/p排序 (3)选取样本:pi从其有序子序列A(i-1)n/p+1.in/p中选取p个样本元素 (4)样本排序:用一台处理器对p2个样本元素进行串行排序 (5)选择主元:用一台处理器从排好序的样本序列中选取p-1个主元,并 播送给其他pi (6)主元划分:pi按主元将有序段A(i-1)n/p+1.in/p划分成p段 (7)全局交换:各处理器将其有序段按段号交换到对应的
14、处理器中 (8)归并排序:各处理器对接收到的元素进行归并排序 end.第21页/共144页 均匀划分技术均匀划分技术例 PSRS排序过程。N=27,p=3,PSRS排序如下:第22页/共144页 方根划分技术方根划分技术划分方法n个元素A1.n分成A(i-1)n(1/2)+1.in(1/2),i=1n(1/2)示例:SIMD-CREW模型上的 Valiant归并(1975年发表)/有序组A1.p、B1.q,(假设plogm=log4=2 =j1=rank(blogm:A)=rank(b2:A)=rank(9:A)=3,j2=8 B0:3,9 B1:16,21 A0:4,6,7 A1:10,12
15、,15,18,20 A和B归并化为(A0,B0)和(A1,B1)的归并第26页/共144页 功能划分技术功能划分技术划分方法 n个元素A1.n分成等长的p组,每组满足某种特性。示例:(m,n)选择问题(求出n个元素中前m个最小者)功能划分:要求每组元素个数必须大于m;算法:p148算法6.4 输入:A=(a1,an);输出:前m个最小者;Begin (1)功能划分:将A划分成g=n/m组,每组含m个元素;(2)局部排序:使用Batcher排序网络将各组并行进行排序;(3)两两比较:将所排序的各组两两进行比较,从而形成MIN序列;(4)排序-比较:对各个MIN序列,重复执行第(2)和第(3)步,
16、直至 选出m个最小者。End第27页/共144页 功能划分技术功能划分技术第28页/共144页分治设计技术分治设计技术并行分治设计步骤双调归并网络第29页/共144页 并行分治设计步骤并行分治设计步骤将输入划分成若干个规模相等的子问题;同时(并行地)递归求解这些子问题;并行地归并子问题的解,直至得到原问题的解。第30页/共144页 双调归并网络双调归并网络双调序列(p149定义6.2)(1,3,5,7,8,6,4,2,0)(8,7,6,4,2,0,1,3,5)(1,2,3,4,5,6,7,8)以上都是双调序列Batcher定理 给定双调序列(x0,x1,xn-1),对于si=minxi,xi+
17、n/2和 l li=maxxi,xi+n/2,则小序列(s0,s1,sn-1)和大序列(l l0,l l1,l ln-1)仍是双调序列第31页/共144页 双调归并网络双调归并网络(4,4)双调归并网络第32页/共144页 双调归并网络双调归并网络Batcher双调归并算法 输入:双调序列X=(x0,x1,xn-1)输出:非降有序序列Y=(y0,y1,yn-1)Procedure BITONIC_MERG(x)Begin (1)for i=0 to n/2-1 par-do (1.1)si=minxi,xi+n/2 (1.2)l li=maxxi,xi+n/2 end for (2)Recur
18、sive Call:(2.1)BITONIC_MERG(MIN=(s0,sn/2-1)(2.2)BITONIC_MERG(MIN=(l l0,l ln/2-1)(3)output sequence MIN followed by sequence MAX End第33页/共144页平衡树设计技术平衡树设计技术设计思想求最大值计算前缀和第34页/共144页 平衡树设计技术平衡树设计技术设计思想 以树的叶结点为输入,中间结点为处理结点,由叶向根或由根向叶逐层进行并行处理。示例求最大值计算前缀和 第35页/共144页 求最大值求最大值算法6.8:SIMD-TC(SM)上求最大值算法 Begin fo
19、r k=m-1 to 0 do for j=2k to 2k+1-1 par-do Aj=maxA2j,A2j+1 end for end for end图示时间分析 t(n)=mO(1)=O(logn)p(n)=n/2A1An/4An/2-1An/2An/2+1An-2An-1AnAn+1An+2An+3A2n-4A2n-3A2n-2A2n-1K=m-1K=m-2K=0P1P1P2Pn/2-1Pn/2P1Pn/2-1第36页/共144页 计算前缀和计算前缀和问题定义n个元素x1,x2,xn,前缀和是n个部分和:Si=x1*x2*xi,1in 这里*可以是或串行算法:Si=Si1*xi 计算时
20、间为 O(n)并行算法:p154算法6.9 SIMD-TC上非递归算法 令Ai=xi,i=1n,Bh,j和Ch,j为辅助数组(h=0logn,j=1n/2h)数组B记录由叶到根正向遍历树中各结点的信息(求和)数组C记录由根到叶反向遍历树中各结点的信息(播送前缀 和)第37页/共144页 计算前缀和计算前缀和例:n=8,p=8,C01C08为前缀和第38页/共144页倍增设计技术倍增设计技术设计思想表序问题 求森林的根第39页/共144页 倍增设计技术倍增设计技术设计思想又称指针跳跃(pointer jumping)技术,特别适合于处理链表或有向树之类的数据结构;当递归调用时,所要处理数据之间的
21、距离逐步加倍,经过k步后即可完成距离为2k的所有数据的计算。示例表序问题求森林的根第40页/共144页 表序问题表序问题问题描述 n个元素的列表L,求出每个元素在L 中的次第号(秩或位序或rank(k),rank(k)可视为元素k至表尾的距离;示例: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
22、=3,re=2,rf=1,rg=0 (4)pa=pb=pc=pd=pe=pf=pg=g ra=6,rb=5,rc=4,rd=3,re=2,rf=1,rg=0第41页/共144页 表序问题表序问题算法:P155算法6.10 (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(n)=O(logn)p(n)=n第42页/共14
23、4页 求森林的根求森林的根问题描述 一组有向树F中,如果是F中的一条弧,则pi=j(即j是i的双亲);若i为根,则pi=i。求每个结点j(j=1n)的树根sj.示例 初始时 P1=p2=5 p3=p4=p5=6 P6=p7=8 p8=8 P9=10 p10=11 p11=12 p12=13 p13=13 si=pi第43页/共144页 求森林的根求森林的根示例 第一次迭代后 第二次迭代后算法:P157算法6.11运行时间:t(n)=O(logn)W(n)=O(nlogn)第44页/共144页流水线设计技术流水线设计技术设计思想5-point DFT的计算第45页/共144页 流水线设计技术流水
24、线设计技术设计思想将算法流程划分成p个前后衔接的任务片断,每个任务片断的输出作为下一个任务片断的输入;所有任务片断按同样的速率产生出结果。评注流水线技术是一种广泛应用在并行处理中的技术;脉动算法(Systolic algorithm)是其中一种流水线技术;第46页/共144页 5-point DFT5-point DFT的计算的计算问题描述 5-point DFT的计算。应用秦九韶(Horner)法则,第47页/共144页 5-point DFT5-point DFT的计算的计算示例:p(n)=n-1,t(n)=2n-2=O(n)第48页/共144页并行算法并行算法3 一般设计过程第49页/共
25、144页并行算法的一般设计过程并行算法的一般设计过程PCAM设计方法学划分通讯组合映射小结第50页/共144页 PCAMPCAM设计方法学设计方法学设计并行算法的四个阶段划分(Partitioning)通讯(Communication)组合(Agglomeration)映射(Mapping)划分:分解成小的任务,开拓并发性;通讯:确定诸任务间的数据交换,监测划分的合理性;组合:依据任务的局部性,组合成更大的任务;映射:将每个任务分配到处理器上,提高算法的性能。第51页/共144页 PCAMPCAM设计过程设计过程第52页/共144页划分划分方法描述域分解功能分解划分判据第53页/共144页 划
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机软件 应用 并行 计算 算法
限制150内