网站大量收购闲置独家精品文档,联系QQ:2885784924

[理学]并行算法讲稿33.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]并行算法讲稿33

P0 P1 while 未达到精度 { y = f(x); wait(y’) x = x – y/y’; } while 未达到精度 { wait(x) y’ = f’(x); } 并行进程如下: P0 P1 y0 = f(x0) y0’ = f’(x0) x1 = x0 – y0/y0’ y1 = f(x1) y1’ = f’(x1) x2 = x1 - y1/y1’ ………… 并行计算过程如下: 5.5 MIMD算法 异步牛顿迭代法解代数方程的根 P1 P2 While 未达到精度 { y = f(x); x = x – y/y’; } While 未达到精度 { y’ = f’(x); } 5.6 流水线技术 归并排序: 设输入长度为n=2r,用p(n)=r+1个处理器并行完全合并排序的任务。设处理器编号从1到r+1,其中首处理器有一个输入,尾处理器有一个输出,其他处理器各有两个输入和两个输出。各处理器同步运行,在一个时间步内,P1从原始输入序列中读取一个数并将其作为结果输出,Pi(i=2…r+1)接收从Pi-1输出的两个长度为2i-2的子序列,并将其合并为一个长度为2i-1的子序列。从P1到Pr,每一个处理器交替地在上面和下面两条输出线上产生合并子序列。除P1外,每个处理器Pi当其前一个处理器的一条输出线上已经产生了长为2i-2的子序列,另一条输出线上出现了第一个元素时,就可以开始归并了。 设Pi和Pi+1之间通过的队列为q2i和q2i+1,即q2i和q2i+1是Pi的输出序列,Pi+1的输入序列。 如下图所示: 设n=2r,p(n)=r+1,算法描述如下: P1: j?2; for k=1 to n do { xk?q1; qj?xk; j = 5-j; } Pi: i=2…r j?0; k?1; while k=n do { if q2(i-1)+j已装满2i-2个元素 and q2(i-1)+(1-j)已出现1个元素 then { for m=1 to 2i-1 do q2i+j?min( q2(i-1)+j, q2(i-1)+(1-j) ); j?1-j; k?k + 2i-1; } } Pr+1: if q2r已装满2r-1个元素,且q2r+1已出现1个元素 then { for m=1 to 2r do q2(r+1)?min( q2r, q2r+1 ); } 十五、接力技术 基本思想 F:让两种算法接力,产生一个求解该问题的新算法,使得既有耗时少的特性又有工作量有效性较高的特性。 S:先用需要较少时间(速度较快)的算法求解给定的问题,直到问题的规模减到某一个阈值为止; L:再用工作量有效性较高的算法,继续求解,直到获得最终的解答。 5.8接力技术 求解最大值的常数时间算法 对n个元素的数组,可以动用n2个处理器,在O(1)的时间内求解出最大值。 A1 A2 A3 m A1 ? F ? F A2 T T T T A3 ? F ? F for all Pi i=1…n do m[i] ? true; for all Pi,j i=1…n, j=1…n do if (A[i]A[j]) m[i] ? false; for all Pi i=1…n do if (m[i]==true) max ? A[i]; 216个叶子 根 28个结点,每个分28个叶结点 28*24个结点,每个分24个叶结点 28*24*22个结点,每个分22个叶结点 28*24*22*2个结点,每个分2个叶结点 十五、接力技术 求解最大值的重对数时间算法 设n个元素的 序列 ,定义一棵以n个元素为叶结点的重对数深度平衡树如下: 树中每一个非叶子结点u的子结点的个数为以u为根的子树上的叶结点的个数的平方根。则第0层为树根,有一个结点,第1层为n1/2个结点,每个结点为根的 子树上有n/n1/2= n1/2个叶子,所以每个结点有n1/4个子结点,可以证明,以第i层上每一个结点为根的子树上有 个叶子结点,第i层上 共有 个结点,可知这样一棵树的高度为loglogn+1,因此称为重对数深度平衡树。 在重对数深度平衡树上,除第0层外,对每一层按父结点分组,对每一组用常数时间算法求解最大值,结果放在其父结点中。可证明,共须n个处理器,经过loglogn+1个并行步完成计算,时间复杂度为O(loglogn)。 5.5 、流水线技术 排序问题 每个进程一次从前一个进程接收待排序序列中的一个数,保存当前接受到的最大的数字,把比这个数小的其他数传给下一个进程。 第一个进程P0直接从待排序序列接收

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档