并行计算mpc高性能计算中心合肥_第1页
并行计算mpc高性能计算中心合肥_第2页
并行计算mpc高性能计算中心合肥_第3页
并行计算mpc高性能计算中心合肥_第4页
并行计算mpc高性能计算中心合肥_第5页
已阅读5页,还剩38页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、多核并行计算Multicore Parallel Computing主讲人 徐 云第二篇 并行算法的设计 第四章 并行算法的设计基础 第五章 并行算法的一般设计方法 第六章 并行算法的基本设计技术 第七章 并行算法的一般设计过程第六章 并行算法的基本设计技术 6.1 划分设计技术 6.1.1 均匀划分技术 6.1.2 方根划分技术 6.1.3 对数划分技术 6.1.4 功能划分技术 6.2 分治设计技术 6.3 平衡树设计技术 6.4 倍增设计技术 6.5 流水线设计技术国家高性能计算中心(合肥)42022/8/12 均匀划分技术(1)划分方法n个元素A1.n分成p组,每组A(i-1)n/p+

2、1.in/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)全局交换:各处理器将其有序段按段号交

3、换到对应的处理器中 (8)归并排序:各处理器对接收到的元素进行归并排序 end.国家高性能计算中心(合肥)52022/8/12 均匀划分技术(2)例6.1 PSRS排序过程。N=27,p=3,PSRS排序如下:第六章 并行算法的基本设计技术 6.1 划分设计技术 6.1.1 均匀划分技术 6.1.2 方根划分技术 6.1.3 对数划分技术 6.1.4 功能划分技术 6.2 分治设计技术 6.3 平衡树设计技术 6.4 倍增设计技术 6.5 流水线设计技术国家高性能计算中心(合肥)72022/8/12 方根划分技术(1)划分方法n个元素A1.n分成A(i-1)n(1/2)+1.in(1/2),i

4、=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, 18, 20 A和B归并化为(A0, B0)和(A1, B1)的归并第六章 并行算法的基本设计技术 6.1 划分设计技术 6.1.1 均匀划分技术 6.1.2 方根划分技术 6.1.3 对数划分技术 6.1.4 功能划分技术 6.2 分治设计技术 6.3

5、平衡树设计技术 6.4 倍增设计技术 6.5 流水线设计技术国家高性能计算中心(合肥)132022/8/12 功能划分技术(1)划分方法 n个元素A1.n分成等长的p组,每组满足某种特性。示例:(m, n)选择问题(求出n个元素中前m个最小者)功能划分:要求每组元素个数必须大于m;算法:p144算法6.4 输入:A=(a1,an); 输出:前m个最小者; Begin (1) 功能划分:将A划分成g=n/m组,每组含m个元素; (2) 局部排序:使用Batcher排序网络将各组并行进行排序; (3) 两两比较:将所排序的各组两两进行比较,从而形成MIN序列; (4) 排序-比较:对各个MIN序列

6、,重复执行第(2)和第(3)步,直至 选出m个最小者。 End国家高性能计算中心(合肥)142022/8/12 功能划分技术(2)第六章 并行算法的基本设计技术 6.1 划分设计技术 6.2 分治设计技术 6.2.1 并行分治设计步骤 6.2.2 双调归并网络 6.3 平衡树设计技术 6.4 倍增设计技术 6.5 流水线设计技术国家高性能计算中心(合肥)162022/8/12 并行分治设计步骤将输入划分成若干个规模相等的子问题;同时(并行地)递归求解这些子问题;并行地归并子问题的解,直至得到原问题的解。第六章 并行算法的基本设计技术 6.1 划分设计技术 6.2 分治设计技术 6.2.1 并行

7、分治设计步骤 6.2.2 双调归并网络 6.3 平衡树设计技术 6.4 倍增设计技术 6.5 流水线设计技术国家高性能计算中心(合肥)182022/8/12 双调归并网络(1)双调序列(p145定义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+n/2和 li=maxxi,xi+n/2,则小序列(s0,s1,sn-1)和大序列(l0,l1,ln-1) 仍是双调序列。国家高性能计算中心(合肥)192022/8/12

8、双调归并网络(2)(4,4)双调归并网络国家高性能计算中心(合肥)202022/8/12 双调归并网络(3)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) li=maxxi,xi+n/2 end for (2)Recursive Call: (2.1)BITONIC_MERG(MIN=(s0,sn/2-1) (2.2)BITONIC_MERG(MIN=

9、(l0, ln/2-1) (3)output sequence MIN followed by sequence MAX End第六章 并行算法的基本设计技术 6.1 划分设计技术 6.2 分治设计技术 6.3 平衡树设计技术 6.3.1 设计思想 6.3.2 求最大值 6.3.3 计算前缀和 6.4 倍增设计技术 6.5 流水线设计技术国家高性能计算中心(合肥)222022/8/12 平衡树设计技术设计思想 以树的叶结点为输入,中间结点为处理结点,由叶向根或由根向叶逐层进行并行处理。示例求最大值计算前缀和 第六章 并行算法的基本设计技术 6.1 划分设计技术 6.2 分治设计技术 6.3 平

10、衡树设计技术 6.3.1 设计思想 6.3.2 求最大值 6.3.3 计算前缀和 6.4 倍增设计技术 6.5 流水线设计技术国家高性能计算中心(合肥)242022/8/12 求最大值(1)算法6.8: SIMD-TC(SM)上求最大值算法 Begin for 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-2

11、A2n-1K=m-1K=m-2K=0P1P1P2Pn/2-1Pn/2P1Pn/2-1国家高性能计算中心(合肥)252022/8/12 求最大值(2)SIMD-CRCW上常数时间求最大值算法算法2.10 SIMD-CRCW上枚举算法/输入A1.p,p个不同元素/B1.p1.p,M1.p为中间处理用的布尔数组, 如果Mi1, 则Ai为最大值begin (1)for 1i, jp par-do /工作量O(p2); 时间O(1),因为允许同时读 if AiAj then Bi, j=1 else Bi, j=0 end if end for (2)for 1ip par-do /工作量O(p2);

12、时间O(1),因为允许同时写 Mi=Bi,1 Bi,2 Bi,p end forendT(n)=O(1) W(n)=O(p2) 可以用p2个处理器实现速度虽快,但不是WT最优第六章 并行算法的基本设计技术 6.1 划分设计技术 6.2 分治设计技术 6.3 平衡树设计技术 6.3.1 设计思想 6.3.2 求最大值 6.3.3 计算前缀和 6.4 倍增设计技术 6.5 流水线设计技术国家高性能计算中心(合肥)272022/8/12 计算前缀和(1)问题定义n个元素x1,x2,xn,前缀和是n个部分和:Si=x1*x2*xi, 1in 这里*可以是或串行算法: Si=Si1*xi 计算时间为 O

13、(n) 并行算法:p150算法6.9 SIMD-TC上非递归算法 令Ai=xi, i=1n, Bh,j和Ch,j为辅助数组(h=0logn, j=1n/2h) 数组B记录由叶到根正向遍历树中各结点的信息(求和) 数组C记录由根到叶反向遍历树中各结点的信息(播送前缀和)国家高性能计算中心(合肥)282022/8/12 计算前缀和(2)例:n=8, p=8, C01C08为前缀和国家高性能计算中心(合肥)292022/8/12 计算前缀和(3)SIMD-SM上非递归算法begin (1)for j=1 to n par-do /初始化 B0,j=Aj end if (2)for h=1 to lo

14、gn do /正向遍历 for j=1 to n/2h par-do Bh,j=Bh-1,2j-1*Bh-1,2j end for end for 时间分析: (1) O(1) (2) O(logn) (3) O(logn) = t(n)=O(logn) , p(n)=n , c(n)=O(nlogn)(3)for h=logn to 0 do /反向遍历 for j=1 to n/2h par-do (i) if j=even then /该结点为其父结点的右儿子 Ch,j=Ch+1,j/2 end if (ii) if j=1 then /该结点为最左结点 Ch,1=Bh,1 end if

15、 (iii) if j=odd1 then /该结点为其父结点的左儿子 Ch,j=Ch+1,(j-1)/2*Bh,j end if end for end for end第六章 并行算法的基本设计技术 6.1 划分设计技术 6.2 分治设计技术 6.3 平衡树设计技术 6.4 倍增设计技术 6.4.1 设计思想 6.4.2 表序问题 6.5 流水线设计技术国家高性能计算中心(合肥)312022/8/12 倍增设计技术设计思想又称指针跳跃(pointer jumping)技术,特别适合于处理链表或有向树之类的数据结构;当递归调用时,所要处理数据之间的距离逐步加倍,经过k步后即可完成距离为2k的所

16、有数据的计算。示例表序问题第六章 并行算法的基本设计技术 6.1 划分设计技术 6.2 分治设计技术 6.3 平衡树设计技术 6.4 倍增设计技术 6.4.1 设计思想 6.4.2 表序问题 6.5 流水线设计技术国家高性能计算中心(合肥)332022/8/12 表序问题(1)问题描述 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,

17、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=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国家高性能计算中心(合肥)342022/8/12 表序问题(2)算法:P151算法6.10 (1)并行做:初始化pk和distancek /O(1) (2)执行 次 /O(logn) (2.1)对k并行地做 /O(1) 如果k的后

18、继不等于k的后继之后继,则 (i) distancek= distancek+ distancepk (ii) pk=ppk (2.2)对k并行地做 rankk=distancek /O(1) 运行时间:t(n)=O(logn) p(n)=n第六章 并行算法的基本设计技术 6.1 划分设计技术 6.2 分治设计技术 6.3 平衡树设计技术 6.4 倍增设计技术 6.5 流水线设计技术 6.5.1 设计思想 6.5.2 5-point DFT的计算 6.5.3 多线程软件流水例子国家高性能计算中心(合肥)362022/8/12 流水线设计技术设计思想将算法流程划分成p个前后衔接的任务片断,每个任

19、务片断的输出作为下一个任务片断的输入;所有任务片断按同样的速率产生出结果。评注流水线技术是一种广泛应用在并行处理中的技术;脉动算法(Systolic algorithm)是其中一种流水线技术;第六章 并行算法的基本设计技术 6.1 划分设计技术 6.2 分治设计技术 6.3 平衡树设计技术 6.4 倍增设计技术 6.5 流水线设计技术 6.5.1 设计思想 6.5.2 5-point DFT的计算 6.5.3 多线程软件流水例子国家高性能计算中心(合肥)382022/8/12 5-point DFT的计算(1)问题描述 5-point DFT的计算。应用秦九韶(Horner)法则,国家高性能计算中心(合

温馨提示

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

最新文档

评论

0/150

提交评论