并行算法的设计与分析(7).ppt_第1页
并行算法的设计与分析(7).ppt_第2页
并行算法的设计与分析(7).ppt_第3页
并行算法的设计与分析(7).ppt_第4页
并行算法的设计与分析(7).ppt_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

并行算法的设计与分析,第7章并行搜索,7.2SIMD-SM模型上有序序列的并行搜索,1.问题描述设有序序列X=x1,x2,xn,令x0=-,xn+1=+,p个处理器并行进行p+1分搜索,以确定出任意输入的数据z是否出现在X中?2.算法描述算法7.1ParallelsearchingonPRAM-CREW/二分查找算法的并行化Begin(1)bot=0;top=n+1;c1p0;cp+1=1;/c为中间标志数组(2)while(bot+1xjthenci=0elseci=1;(2.2)newbot=bot;newtop=(top-bot)/(p+1);/取上整(2.3)fori=1topdoinparallelifcici+1thennewbot=bot+i(top-bot)/(p+1);newtop=bot+(i+1)(top-bot)/(p+1);(2.4)bot=newbot;top=newtop;/更新下次并行搜索区间的上下限endwhile(3)ifz=xtopthen输出匹配位置topEnd.,7.2SIMD-SM模型上有序序列的并行搜索,3.算法复杂度因为下次迭代进行并行搜索时,待搜索的元素区间内的数据个数是当前搜索区间内数据个数的(p+1)分之一,也即第i次迭代并行处理时,待搜索的元素区间内的数据个数是(n+2)/(p+1)i,i=1k,k=logp+1(n+2),所以算法所需的执行时间为t(n)=O(1)+i=1kO(1)+O(1)=O(k)=O(logp+1(n+2)=O(logp+1n)执行代价c(n)=pO(logp+1n)=O(plogp+1n)=O(p/logp*logn)加速比Sp(n)=O(logn)/O(logp+1n)=O(logp)/对数加速,7.2SIMD-SM模型上有序序列的并行搜索,3.算法示例X=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,n=16,z=1,p(n)=2迭代bottopnewbotnewtopc1c2c3j(P1)j(P2)初态0170016121060611124202021111230101111并行3-分搜索过程(相当于动态生成一棵三叉树):-12345678910111213141516+-,123456-,12,7.5网孔连接的SIMD模型上随机序列的并行搜索,1.问题:任给无序序列S=s1,s2,sn,搜索输入x是否出现在S中?2.算法思想将n个数据存储在*的二维网孔机器上,每个结点(处理器)存储1个元素。(1)展开(unfolding):按从左至右,自上而下方式,逐行、逐列交替展开,将x播送给MESH的处理器,并将x与处理器中数据比较和保存比较结果;(2)折叠(folding):按从右到左,由底向上方式,逐列、逐行交替折叠,回收比较结果。3.算法描述算法7.6:SIMD-MC2上随机序列并行搜索输入:x和,si,j存放在Pi,j,bi,j是Pi,j的标志变量输出:若si,j=x,P1,1则输出yes,否则输出noBegin(1)ifx=s1,1thenb1,1=1elseb1,1=0endif/P1,1读入x(2)fori=1to-1do/展开:自左至右,自上而下,行列交替(2.1)forj=1toipar-do/当前已获得x的处理器的最大行数i(i)Pj,i发送(bj,i,x)给Pj,i+1/同列处理器自左向右传送;1个路由步(ii)if(x=sj,i+1orbj,i=1)thenbj,i+1=1elsebj,i+1=0endifendfor(2.2)forj=1toi+1par-do/当前已获得x的处理器的最大列数i+1(i)Pi,j发送(bi,j,x)给Pi+1,j/同行处理器自上向下传送;1个路由步(ii)if(x=si+1,jorbi,j=1)thenbi+1,j=1elsebi+1,j=0endifendfor,7.5网孔连接的SIMD模型上随机序列的并行搜索,(3)fori=downto2do/折叠:从右到左,自下而上,列行交替(3.1)forj=1toipar-doPj,i发送bj,i给Pj,i-1/同列处理器将bj,i自右向左传送;1个路由步(3.2)forj=1toi-1par-dobj,i-1bj,i/逐列更新比较结果;1个路由步(3.3)if(bi,i-1=1orbi,i=1)thenbi,i-1=1elsebi,i-1=0endif(3.4)forj=1toi-1par-doPi,j发送bi,j给Pi-1,j/同行处理器将bj,i自下向上传送;1个路由步(3.5)forj=1toi-2par-dobi-1,jbi,j/逐行更新比较结果;1个路由步(3.6)if(bi-1,i-1=1orbi,i-1=1)thenbi-1,i-1=1elsebi-1,i-1=0endifendfor(4)ifb11=1thenP11输出yeselse输出noendifEnd.4.算法复杂度:tc(n)=O(1)+(-1)O(1)+(-1)O(1)+O(1)=O();tr(n)=2(-1)+4(-1)=6(-1)路由步;t(n

温馨提示

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

评论

0/150

提交评论