93SIMD互连网络模型的并行算法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
93SIMD互连网络模型的并行算法

9.3 SIMD互连网络模型的并行算法 (一) 网孔上的随机序列搜索算法 给定一整数序列S=(s1,…,sn)和一整数x,S不一定有序且各元素不一定相异,确定S中是否有数等于x。 在网孔连接的SIMD机器上,令si,j表示P(i,j)中保存的记录的s域,指定P(1,1)为输入和输出端口。 算法思想: 展开: P(1,1)读取x (如x=s1,1则产生输出b1,1=1,否则为0),(b1,1,x)与P(1,2)通信 (如x=s1,2或b1,1=1则b1,2=1,否则为0),两个相邻行之间,P(1,1)和P(1,2)分别同时发送(b1,1,x)和(b1,2,x)给P(2,1)和P(2,2),一旦计算出b2,1和b2,2则两个相邻列之间P(1,2)和P(2,2)分别同时发送(b1,2,x)和(b2,2,x)给P(1,3)和P(2,3),…,这种行列交替的展开过程一直继续到x到达P(,)为止; 折叠: 展开结束后,每个处理器都有机会看到x,并将其与自己保存的s相比较,折叠式展开的逆过程,即输出响应位经逐行、逐列,以交替方式自右至左,自底至上回收到P(1,1)。 并行算法: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 算法9.3.1 串行输入和输出的网孔上的搜索算法 输入:随机序列S=(s1,…,sn)和x 输出:若si,j=x,则bi,j=1,否则为0 MESH SEARCH(S,x,k) { /*P(1,1)读取输入*/ if(x==s1,1) {b1,1(1;} else {b1,1(0;} /*展开*/ for(i=1;i=;i++) { par for(j=1;j=i;j++) { P(j,i)发送(bj,i,x)给P(j,i+1); if(x==sj,i+1 || bj,i==1) {bj,i+1(1;} else {bj,i+1(0;} } } par for(j=1;j=i+1;j++) { P(i,j)发送(bi,j,x)给P(i+1,j); if(x==si+1,j || bi,j==1) {bi+1,j(1;} else {bi+1,j(0;} } /*折叠*/ for(;i=2;i--) { par for(j=1;j=i;j++) { P(j,i)发送bi,i给P(j,i-1); } par for(j=1;j=i-1;j++) { bj,i-1(bj,i; } if(bi,i-1==1 || bi,i==1) {bi,i-1(1;} else {bi,i-1(0;} par for(j=1;j=i-1;j++) { P(i,j)发送bi,j给P(i-1,j); } par for(j=1;j=i-2;j++) { bi-1,j(bi,j; } if (bi-1,i-1==1 || bi,i-1==1) {bi-1,i-1(1;} else {bi-1,i-1(0;} } /*P(1,1)产生输出*/ if(b1,1==1) {answer(yes;} else {answer(no;} } 在网孔上的随机序列搜索算法中,读取和输出各取常数时间,展开和折叠共迭代次,每次取常数时间,所以提问(即确定S中是否有数等于x)的时间为。因为展开的第一次迭代之后,P(1,1)已空闲,它就可接受新的提问;在相继迭代过程中,其它处理器也有类似情况,所以提问可以流水线方式处理。 例9_5 令一个16记录的文件已存在4×4网孔连接的SIMD机器中。图9_15(a)中每个方块代表一个处理器,其内的数字是有关记录的s域。现在欲决定是否存在一个s域等于15 (即x=15)的记录。图9_15(b)~(h)图示了在阵列中15的传播过程。图9_15(i)示出算法第(2)步结束时有关的b值。图9_15(j)到(o)图示了折叠过程。图9_15(p)示出第(4)步产生的结果。注意,图9_15(e)处理器P(1,1)已空,指明它已完成了传播15的工作且现在可接受新的提问了。 1 2 3 4 8 7 6 5 9 10 11 12 16 15 14 13 (a) 15 15 15 15 (b) 15 15 15 15 (c) 15 15 15 15 15 15 (d) 15 15 15 15 15 15

文档评论(0)

zilaiye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档