




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章第四章 并行算法的设计技术并行算法的设计技术 划分(Partitioning)分解成小的任务,开拓并发性 通讯(Communication)确定诸任务间的数据交换,监测划分的合理性; 组合(Agglomeration)依据任务的局部性,组合成更大的任务 映射(Mapping)将每个任务分配到处理器上,提高算法的性能并行算法的设计技术并行算法的设计技术 平衡树方法 倍增技术 分治策略 流水线技术平衡树技术平衡树技术平衡树设计思想 以树的叶结点为输入,中间结点为处理结点,由叶向根或由根向叶逐层进行并行处理。 A1An/4An/2-1An/2An/2+1An-2An-1AnAn+1An+2An
2、+3A2n-4A2n-3A2n-2A2n-1K=m-1K=m-2K=0P1P1P2Pn/2-1Pn/2P1Pn/2-1应用应用-N个数求和个数求和输入:数组A(1:N),N=2K输出:数组值的总和存储于A(1)中begin p=n/2 while p0 do for i=1 to p do in parallel A(i)=A(2i-1)+A(2i) end parallel p=p/2 end whileend应用应用-计算前缀和计算前缀和82022-6-27 计算前缀和计算前缀和SIMD-TC模型上非递归求前缀和算法模型上非递归求前缀和算法输入:n=2k的数组A,k为非负整数输出:数组C,
3、其中C(0,j)是第j个前缀和begin (1) for j=1 to n par-do B(0,j)-A(j) end for (2) for h=1 to log n do for j=1 to n/2h par-do B(h,j)- B(h-1,2j-1)* B(h-1,2j) end for endfor SIMD-TC模型上非递归求前缀和算法模型上非递归求前缀和算法 (3) for h=log n to 0 do for j=1 to n/2h par-do (i) if j=even then C(i,j)-C(h+1,j/2) end if (ii) if j=1 then C(
4、h,1)1 then C(H,j)-C(h+1,(j- 1)/2) *B(h,j) end for end for end for end122022-6-27 倍增设计技术倍增设计技术k132022-6-27 表序问题表序问题输入:N个元素的表列L输出:rank(k)Begin:(1) for all kl par_do (1.1) p(k)next(k) (1.2) if p(k)k then distance(k) 1 else distance(k) 0 end if end for(2) repeatlog ntimes (2.1)for all kl par_do If p(k)p
5、(p(k) then ()distance(k) distance(k)+distance(p(k) ()p(k) p(p(k) end if end for (2.2) for all kl par_do rank(k) distance(k) end for end repeatendA0 An/p-1 An/p A2n/p-1 A2n/p A(p-1)n/p An-1+局部和局部和总和总和 2路分治法路分治法int add(int s ) if(number(s)=2) return (n1+n2); else Divide(s, s1,s2); Part_sum1=add(s1); P
6、art_sum2=add(s2); Return (Part_sum1+ Part_sum2); Int add(int *s) if (number(s)=4) return(n1+n2+n3+n4); else divide (s,s1,s2,s3,s4); part_sum1=add(s1); part_sum2=add(s2); part_sum3=add(s3); part_sum4=add(s4); return(part_sum1+ part_sum2+ part_sum3+ part_sum1) 矩形面积= d * f ( p + d / 2 )xf(x)a p d q b梯形
7、面积= d * ( f ( p ) + f ( q ) ) / 2 )xf(x)a p d q b1 40 1+x21 + ( ) 4 i + 0.5 2 n0in1n = dx d (f(a)+f(a+d)2d (f(a+d d)+f(a+2d)2d (f(a+(n-1)d)+f(b)2面积= + += d + f(a+d) + f(a+2d) + f(a+(n-1)d) + f(b)2f(a)2 算法只需做少量修改:part_sum = 0.5 *(f(start)+f(end);for (x = start + d; xend; x = x + d) /calcs partial sum
8、s part_sum += f(x);part_sum = d * part_sum;算法描述算法描述在SPMD 模式中:If (I=master) printf(“Enter number of intervals”); scanf(“%d”,&n);Bcast(&n,pgroup); region=(b-a)/p; start=a+region*I; end=start+region; 算法描述算法描述 d=(b-a)/n; area=0.0; for (x=start;xend;x=x+d) area=area+0.5*(f(x)+f(x+d)*d; reduce_add(&integr
9、al,&area, pgroup);- for(x=start;xend;x=x+d) area=area+f(x)+f(x+d); area=0.5*area*d;a4a3a2 a4 a3 a2 a1 a1 a4 a3 a2 a4 a3P 0P 1P 2P 3P 4 a4 流水线技术流水线技术并行算法aSin SoutaSin Souta1aSin Souta2aSin Souta3a0sum每个处理机(流水线中的中间级)需要执行相同的操作:recv (sum,Pi-1);sum = sum + a;send (sum, Pi+1);主机Processors线性结构的线性结构的多处理机系统多处理机系统线性结构和环形结构可以完美地嵌入到网格和超线性结构和环形结构可以完美地嵌入到网格和超立方体结构之上。这就使得网格和超立方体成为立方体结构之上。这就使得网格和超立方体成为合适的平台。合适的平台。可将结果返回给主进程的双向流水线机器结构:未排序未排序的数列的数列P0P1Pp-1主进程主进程从进程从进程未排序未排序的数列的数列P0P1Pp-1主进程主进程从进程从进程已排序已排序的数列的数列P0P1P2P3P4流水线时间流水线时间将要被排序的数列:5, 2, 1, 3, 41542354132542315531245423152
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汕尾市2025届四下数学期末质量跟踪监视模拟试题含解析
- 西安健康工程职业学院《幼儿玩具制作》2023-2024学年第二学期期末试卷
- 信息安全管理与2025年考试试题及答案
- 2025年心理健康教育教师资格证考试试卷及答案
- 山西省大同市矿区恒安第一中学2025届初三下学期第一次段考生物试题含解析
- 娄底职业技术学院《初级计量经济学》2023-2024学年第二学期期末试卷
- 吉林省长春市高新区2025年初三第九次考试生物试题含解析
- 江苏省镇江市丹阳三中学2025年初三网络模拟考试物理试题含解析
- 山西省阳泉市平定县重点中学2025届初三5月质量检测试题(A卷)生物试题文试题含解析
- 知识产权许可与反许可知识产权转让协议
- 七下生物考试试卷及答案
- 财产险试题库及答案
- 课题开题报告:职业教育市域产教联合体运行逻辑与监测评估机制研究
- 湖南新高考教学教研联盟暨长郡二十校联盟2025届高三年级第二次联考物理试题及答案
- 商品出库管理规范
- 2025山东烟台市蓬莱区城市建设投资集团有限公司招聘22人笔试参考题库附带答案详解
- 建筑劳务公司人事管理制度
- 2025年湖南省中考数学模拟试卷(一)(原卷版+解析版)
- 应聘人员登记表
- 光缆线路工程验收标准
- 2024年山东省公共卫生临床中心招聘笔试真题
评论
0/150
提交评论