并行编译简介_第1页
并行编译简介_第2页
并行编译简介_第3页
并行编译简介_第4页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、并行编译简介国家高性能计算中心(合肥)22022-3-7并行编译简介国家高性能计算中心(合肥)32022-3-7并行编译器的组成及任务国家高性能计算中心(合肥)42022-3-7数据依赖关系国家高性能计算中心(合肥)52022-3-7依赖关系示例国家高性能计算中心(合肥)62022-3-7依赖关系示例依赖关系:国家高性能计算中心(合肥)72022-3-7数据依赖关系表示同一个存储单元表示同一个存储单元M国家高性能计算中心(合肥)82022-3-7依赖距离和依赖向量 令 =(1,2,n) 和 =(1,2,n)是n层循环内的n个整数下标向量,假定 和 存在数据相关性,则依赖距离向量依赖距离向量(D

2、ependent Distance Vector)D = (D1,D2,Dn)定义为-;而依赖方向向量依赖方向向量(Dependent Direction Vector)d = (d1,d2,dn)定义为:iiiiiii 国家高性能计算中心(合肥)92022-3-7国家高性能计算中心(合肥)102022-3-7语句依赖图和迭代依赖图-国家高性能计算中心(合肥)112022-3-7语句依赖图示例国家高性能计算中心(合肥)122022-3-7 语句T流依赖于语句S,即S f T,满足依赖关系的偶对集合为: | i = j -1 ; 5 | i = j -1 ; 5j j200 200 | i =

3、j -3 ; 7 | i = j -3 ; 7j j200 200 语句S流依赖于语句T,即T f S,满足依赖关系的偶对集合为: | i = j -2 ; 6 | i = j -2 ; 6j j200 200 语句S输出依赖于语句U,即 U o S ,满足依赖关系的偶对集合为: | i = j -1 ; 5 | i = j -1 ; 5j j200 200 语句T反依赖于语句U,即U a T ,满足依赖关系的偶对集合为: | j = 2 | j = 2* *i + 1 ; 4i + 1 ; 4i99i99 语句语句T T是否流依赖于语句是否流依赖于语句U U呢?呢?国家高性能计算中心(合肥)

4、132022-3-7语句依赖图示例国家高性能计算中心(合肥)142022-3-7迭代依赖图示例(1)国家高性能计算中心(合肥)152022-3-7迭代依赖图(1)国家高性能计算中心(合肥)162022-3-7迭代依赖图示例(2)国家高性能计算中心(合肥)172022-3-7 语句T流依赖于语句S,即S f T,满足依赖关系的偶对: S(i1,i2), T(j1,j2) | j1 = i1+1, j2=i2-1,0i13, 1i24 ,距离向量为(1,-1),方向向量为(1, -1)。此依赖关系由循环L1携带; 语句S流依赖于语句T,即T f S,满足依赖关系的偶对: T(i1,i2), S(j

5、1,j2) | j1 = i1, j2=i2+1,0i14, 0i23 ,距离向量为(0,1),方向向量为(0, 1)。此依赖关系由循环L2携带; 语句U流依赖于语句T,即T f U,满足依赖关系的偶对: T(i1,i2), U(j1,j2) | j1 = i1, j2=i2,0i14, 0i24 ,距离向量为(0,0),方向向量为(0,0)。此依赖关系与循环无关。国家高性能计算中心(合肥)182022-3-70 01 12 23 34 4i i1 12 23 34 4j j国家高性能计算中心(合肥)192022-3-7国家高性能计算中心(合肥)202022-3-7依赖关系方程国家高性能计算中

6、心(合肥)212022-3-7依赖关系方程(丢番图方程)国家高性能计算中心(合肥)222022-3-7国家高性能计算中心(合肥)232022-3-7国家高性能计算中心(合肥)242022-3-7循环向量化 循环向量化将仅含有数组赋值语句的循环L转换成等价的向量语句如:循环for I = 1 to N doS: A(I) = D(I) * ET: C(I) = A(I) + B(I)endfor可以改写为等价等价的向量语句:S:A(1:N) = D(1:N) * ET:C(1:N) = A(1:N) + B(1:N)国家高性能计算中心(合肥)252022-3-7 可向量化循环如果将循环内的数组赋

7、值改为相应的向量语句后,按原来语句次序执行所得结果与原来串行执行一样,那么. . . 但以下循环不可向量化:for I = 1 to N doS: A(I) = A(I-1) + 1; /不能写成A(1:N) = A(0:N-1) + 1endfor而以下循环却可以向量化:for I = 1 to N doS1: A(I) = A(I+1) + 1; /可以写成A(1:N) = A(2:N1) + 1endfor为什么?国家高性能计算中心(合肥)262022-3-7 可向量化循环的充要条件对于循环L=(L1,L2,. . ., Lm)其最内层循环Lm可向量化当且仅当:Lm中任意两个语句S和T,

8、(1) 当S 0 P 0 成立。成立。这里mXm的置换矩阵P定义为: 每个元素非0即1 每行有且仅有一个元素为1 每列有且仅有一个元素为1令(i)表示P中第i列中为1的元素所在的行号,则函数:i (i)是集合1,2,m上的一个置换,它完全确定矩阵P。P可以表示为:1, 2, , m(1), (2), (m) P 或 (1), (2), (m)国家高性能计算中心(合肥)462022-3-7 考虑循环例2和例3:对于例2,置换矩阵P = 2, 1 , 而原循环中的方向向量为 = (0,1), P = (0,1) 2,1 = ( 1,0 ) 0。因此该循环交换是合法的。 对于例3,置换矩阵P = 2

9、, 1 , 而原循环中的方向向量为 = (1,0), P = (1,0) 2,1 = ( 0,1 ) 0。因此该循环交换是合法的。这里P=2,1 其矩阵形式为:而P= 3, 2, 1的矩阵形式为:0 11 0国家高性能计算中心(合肥)472022-3-7循环逆转 循环逆转(loop reversal)颠倒循环中迭代执行的顺序,颠倒循环中迭代执行的顺序,改变了循环迭代方向的变换,也使得变换循环中方向改变了循环迭代方向的变换,也使得变换循环中方向向量发生逆转向量发生逆转。 如果循环在逆转变换后,它的方向向量均为正向量,则称该变换前后的循环等价,该变换是合法的。考虑如下循环例4:for I = 1

10、to 100 do for J = 1 to 5 doS: A(I,J) = A(I-1,J+1) +1 endforendfor国家高性能计算中心(合肥)482022-3-7 循环例4的迭代依赖图如下,可知它含有方向向量为(1,-1)的依赖关系,其内层循环可以并行化(但粒度为5次迭代),其外层不能并行化,也不能进行循环交换。(为什么?)对循环J进行并行,粒度为5次迭代国家高性能计算中心(合肥)492022-3-7但对例4中,循环J进行逆转,则方向向量变为(1,1)。可以对循环嵌套进行循环交循环交换换。此时内层循环I可以并行化(粒度为100次迭代!),迭代依赖图如右所示:for J = 5 downto 1 do for I = 1 to 100 doS: A(I,J) = A(I-1,J+1) +1 endforendfor国家高性能计算中心(合肥)502022-3-7 圈收缩(cycle shrinking)此变换技术一般用于依赖距离大于1的循环中,它将一个串行循环分成两个紧嵌套循环,其中外层依然串行执行,而内层则是并行执行(一般粒

温馨提示

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

评论

0/150

提交评论