并行计算-多媒体课件-并行程序设计-ch08并行编译



《并行计算-多媒体课件-并行程序设计-ch08并行编译》由会员分享,可在线阅读,更多相关《并行计算-多媒体课件-并行程序设计-ch08并行编译(36页珍藏版)》请在装配图网上搜索。
1、并行计算,第一级,第二级,第三级,第一级,第二级,第三级,国家高性能计算中心(合肥),*,*,并行算法实践,并行编译概述,并行编译器的组成及任务,数据依赖关系,循环的向量化与并行化,2024/10/22,2,国家高性能计算中心(合肥),并行编译器的组成及任务,源代码,程序分析,程序优化,并行代码生成,向量机:,组织向量循环,寄存器分配,流水线调度,共享存储多机系统:,任务划分,处理机调度,同步,分布存储多机系统:,数据和计算分布,通信,同步,数据依赖与控制依赖关系分析,数据流分析,包括循环向量化与并行化在内的各种优化,并行语义识别,处理指令级并行调度,2024/10/22,3,国家高性能计算中
2、心(合肥),数据依赖关系,Def1:,语句,S,和,T,,若存在变量,x,使之满足下述条件之一,则称语句,T,依赖于语句,S,,记为,S,T,,否则,S,和,T,之间没有数据依赖关系:,(,1,)流依赖:,S,f,T,,若,xOUT,(,S,)且,xIN,(,T,),且,T,使用,S,计算出的,x,的值;,T,流依赖于,S,;,(,2,)反依赖:,S,a,T,,若,xIN,(,S,)且,xOUT,(,T,),但,S,使用,x,值先于,T,对,x,的定值;,T,反依赖于,S,;,(,3,)输出依赖:,S,o,T,,若,xOUT,(,S,)且,xOUT,(,T,)但,S,较之,T,先对,x,进行定
3、值;,T,输出依赖于,S,;,2024/10/22,4,国家高性能计算中心(合肥),e.g.,考虑语句序列,:,S:A=B+D,T:C=A*3,U:A=A+C,V:E=A/2,依赖关系示例,IN:B D,,,OUT,:,A,IN:A,,,OUT,:,C,IN:A C,,,OUT,:,A,IN:A,,,OUT,:,E,S,f,T,S,f,U,S,o,U,T,f,U,T,a,U,U,f,V,2024/10/22,5,国家高性能计算中心(合肥),依赖关系示例,e.g.,循环语句:,for i=1 to 100 do,S:,Ai,=B i+2+1;,T:,Bi,=Ai-1 1;,end for,S(1
4、):A1=B3 +1,T(1):B1=A0 1,S(2):A2=B4 +1,T(2):B2=A1 1,S(3):A3=B5 +1,T(3):B3=A2 1,.,S(100):A100=B102 +1,T(100):B100=A99 1,f,a,依赖关系:,S,f,T,S,a,T,2024/10/22,6,国家高性能计算中心(合肥),数据依赖关系,Def2,:,语句,S,和,T,在循环,L,中。如果,S,的实例,S(i,),和,T,的实例,T(j,),以及变量,u,S,,变量,v,T,,满足:,(,1,),u,和,v,至少有一个是输出变量;,(,2,),u,S(i,),和变量,v,T(j,),表
5、示同一个存储单元,M,(,3,)在,L,的顺序执行中,,S(i,),先于,T(j,),(,4,)在,L,的顺序执行中,,S(i,),之间,T(j,),没有其他对,M,的写操作;则,u,、,v,引起,T,依赖于,S,,即,S T,,称为,T(j,),依赖于,S(i,),,其中:,流依赖:,u OUT(S),v,IN(T),反依赖:,u IN(S),v,OUT(T),输出依赖:,u OUT(S),v,OUT(T),T,对,S,的依赖即为满足上述条件的偶对(,S(i),T(j,),)的集合。,2024/10/22,7,国家高性能计算中心(合肥),依赖距离和依赖向量,令,=(,1,2,n,),和,=(
6、,1,2,n,),是,n,层循环内的,n,个整数下标向量,假定,和,存在数据相关性,则,依赖距离向量,(,Dependent Distance Vector,),D=(D,1,D,2,D,n,),定义为,-,;而,依赖方向向量,(,Dependent Direction Vector,),d=(d,1,d,2,d,n,),定义为:,或,1,或,0,或,1,2024/10/22,8,国家高性能计算中心(合肥),例如,有如下的三层循环嵌套:,for,i=,l,1,to,u,1,do,for,j=,l,2,to,u,2,do,for,k=,l,3,to,u,3,do,A(i,+1,j,k 1)=,A
7、(i,j,k)+C,endfor,endfor,endfor,则数组,A,的三维迭代之间的相关距离向量,D=(i+1 i,j j,k 1 k)=(1,0,-1),和相关方向向量,=(),。,相关方向向量对计算循环体间相关性十分有用,其相关性是通过相关方向向量不是”,=”,号的外层循环传递的;相关距离向量指明在,同一存储单元的两次访问之间循环迭代的实际距离,。它们对开发并行性或优化存储器层次结构时起到指引作用。,2024/10/22,9,国家高性能计算中心(合肥),语句依赖图和迭代依赖图,语句依赖图依赖关系,的有向图。将语句,如,S,和,T,,看成结点,若有,S,T,,则:,间接依赖关系 ,即依
8、赖关系的传递闭包。,若,S T,,则在语句依赖图中存在,S,到,T,的一条路径。,迭代依赖图即(循环)迭代之间的依赖关系。在循环,L,中,若语句,T,依赖于语句,S,,即,S,T,。令,S(I),和,T(J),是满足依赖关系的偶对,,S(I),T(J),,此时应该有,I,J,。在,IJ,时,称迭代,H(J),依赖于迭代,H(I),,记为,H(I),H(J),。,S,T,2024/10/22,10,国家高性能计算中心(合肥),语句依赖图示例,有如下循环语句:,for i=4 to 200 do,S:,A(i,),=,B(i,),+,c(i,),T:,B(i+2),=,A(i-1),+,A(i-3
9、),+C(i-1),U:,A(i+1),=,B(2*i+3),+1,endfor,各语句间依赖关系如何呢?,2024/10/22,11,国家高性能计算中心(合肥),语句,T,流依赖于语句,S,,即,S,f,T,,满足依赖关系的偶对集合为:,|i=j-1;5,j,200 ,|i=j-3;7,j,200,语句,S,流依赖于语句,T,,即,T,f,S,,满足依赖关系的偶对集合为:,|i=j-2;6,j,200,语句,S,输出依赖于语句,U,,即,U,o,S,,满足依赖关系的偶对集合为:,|i=j-1;5,j,200,语句,T,反依赖于语句,U,,即,U,a,T,,满足依赖关系的偶对集合为:,|j=2
10、*i+1;4,i99,语句,T,是否流依赖于语句,U,呢?,2024/10/22,12,国家高性能计算中心(合肥),for i=4 to 200 do,S:,A(i,),=,B(i,),+,c(i,),T:,B(i+2),=,A(i-1),+,A(i-3),+C(i-1),U:,A(i+1),=,B(2*i+3),+1,endfor,语句依赖图示例,S,T,U,f,f,o,a,2024/10/22,13,国家高性能计算中心(合肥),迭代依赖图示例(,1,),有如下二重循环:,for i=0 to 5 do,for j=0 to 4 do,S:,A(i+1,j+1),=,A(i,j,),+B(,
11、i,j,),endfor,endfor,显然,,S,f,S,。满足依赖关系的偶对集合:,|j1=i1+1,j2=i2+1,0,i1,4,0,i2,3,/,依赖方向向量和距离向量各是什么?,2024/10/22,14,国家高性能计算中心(合肥),迭代依赖图(,1,),2024/10/22,15,国家高性能计算中心(合肥),迭代依赖图示例(,2,),有如下二重循环:,L1:for i1=0 to 4 do,L2:for i2=0 to 4 do,S:,A(i1+1,i2),=,B(i1,i2),+C(i1,i2),T:,B(i1,i2+1),=,A(i1,i2+1),+1,U:D(i1,i2)=,
12、B(i1,i2+1),2,endfor,endfor,2024/10/22,16,国家高性能计算中心(合肥),语句,T,流依赖于语句,S,,即,S,f,T,,满足依赖关系的偶对:,S(i1,i2),T(j1,j2)|j1=i1+1,j2=i2-1,0,i1,3,1,i2,4,,距离向量为,(1,-1),,方向向量为,(1,-1),。此依赖关系由循环,L1,携带;,语句,S,流依赖于语句,T,,即,T,f,S,,满足依赖关系的偶对:,T(i1,i2),S(j1,j2)|j1=i1,j2=i2+1,0,i1,4,0,i2,3,,距离向量为,(0,1),,方向向量为,(0,1),。此依赖关系由循环,
13、L2,携带;,语句,U,流依赖于语句,T,,即,T,f,U,,满足依赖关系的偶对:,T(i1,i2),U(j1,j2)|j1=i1,j2=i2,0,i1,4,0,i2,4,,距离向量为,(0,0),,方向向量为,(0,0),。此依赖关系与循环无关。,2024/10/22,17,国家高性能计算中心(合肥),S,T,U,f,f,f,语句依赖图,迭代依赖图,2024/10/22,18,国家高性能计算中心(合肥),考虑如下循环的迭代依赖图:,for I=1 to 4 do,for J=1 to 4 do,S:A(I,J)=A(I-1,J)+A(I,J-1),endfor,endfor,2024/10/
14、22,19,国家高性能计算中心(合肥),依赖关系方程,假定循环中数组下标是循环索引变量的线性表达式,循环的一般表示:,(X,是,n,维数组,,f,和,g,是循环索引变量,I=(I,1,I,2,I,m,),的线性函数,),L,1,:for I,1,=p,1,to q,1,do,L,2,:for I,2,=p,2,to q,2,do,.,L,m,:for,I,m,=p,m,to,q,m,.,S:,X(f,1,(I),f,2,(I),f,n,(I,),=.,T:.=.,X(g,1,(I),g,2,(I),g,n,(I,),.,.,endfor,.,endfor,endfor,2024/10/22,2
15、0,国家高性能计算中心(合肥),依赖关系方程,(,丢番图方程),上述循环,L,中语句,S,和,T,,令,u=,X(f,1,(I),f,2,(I),f,n,(I,),是,S,的变量,而,v=,X(g,1,(I),g,2,(I),g,n,(I,),,,u,或,v,至少一个是相应语句的输出变量。若,u,、,v,导致,S,和,T,之间的依赖关系,则以下方程组,f,1,(I),g,1,(J)=0,f,2,(I),g,2,(J)=0,.,f,n,(I,),g,n,(J,)=0,有满足下述约束条件的整数解(,i,j,),,i=(i,1,i,2,i,m,),j=(j,1,j,2,j,m,):,p,r,i,r,
16、q,r,p,r,j,r,q,r,;且该解满足下述特定情况下的附加条件:,(,1,)若,S,T,且,S,T,则,i,j,(,2,)若,S,T,且,S,S,则,i,j,(,3,)若,S,j,2024/10/22,21,国家高性能计算中心(合肥),如果依赖方程(丢番图方程)有满足上述条件的整数解(,i,,,j,),那么,(,1,)若,i,j,则,T,S,(,3,)若,i,j,且,S,T,,则,S,T,其中,表示,间接依赖关系,。,2024/10/22,22,国家高性能计算中心(合肥),考虑如下程序段:,L1:for I=1 to 50 do,.,S:X(2*I)=.,.,T:.=.X(3*I+1).,.,endfor,这里:,f,1,(I)=2*I,;,g,1,(J)=3*J+1,。依赖方程为:,f,1,(I)-g,1,(J)=0,2*I 3*J=1,而依赖约束为:,1,I,50,,,1,J,50,。该方程的解(,I,J),对应的数组变量会导致,S,和,T,之间的依赖。,2024/10/22,23,国家高性能计算中心(合肥),循环向量化,循环向量化,将仅含有数组赋值语句的循环,L,转换成等价
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。