




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Y.Xu Copyright USTC,2020/9/11,Parallel Algorithms Chapter 12 Matrix Operations,2020/9/11,Y.Xu Copyright USTC,主要内容,12.1 矩阵的划分 12.2 矩阵转置 12.3 矩阵向量乘法 12.4 矩阵乘法,2020/9/11,Y.Xu Copyright USTC,12.1 矩阵的划分,划分方法 带状划分(striped partitioning): one dimensional, row or column, block or cyclic 棋盘划分(checkerboard par
2、titioning): two dimensional, block or cyclic,2020/9/11,Y.Xu Copyright USTC,12.1 矩阵的划分,12.1.1 带状划分 1616阶矩阵,p=4 列块带状划分 行循环带状划分,2020/9/11,Y.Xu Copyright USTC,12.1 矩阵的划分,12.1.2 棋盘划分 88阶矩阵,p=16 块棋盘划分 循环棋盘划分,2020/9/11,Y.Xu Copyright USTC,主要内容,12.1 矩阵的划分 12.2 矩阵转置 12.3 矩阵向量乘法 12.4 矩阵乘法,2020/9/11,Y.Xu Copyr
3、ight USTC,12.2 矩阵转置,A=(aij)nn, A的转置矩阵AT=(aji)nn 12.2.1 棋盘划分的矩阵转置(以下仅讨论网孔和超立方情形) 1. 网孔连接 Case 1: p=n2。 Communication steps Final configuration,2020/9/11,Y.Xu Copyright USTC,12.2 矩阵转置,Case 2: pn2 - 划分: - 算法: 按mesh连接进行块转置(不同处理器间) 进行块内转置(同一处理器内) - 示例: Communication step Local rearangement,2020/9/11,Y.Xu
4、 Copyright USTC,递归转置算法,2020/9/11,Y.Xu Copyright USTC,2. 超立方连接 - 划分: - 算法: 对Aij递归应用进行转置,直至分块矩阵的元素处于同一处理器; 进行同一处理器的内部转置。 - 示例: 见下图 - 运行时间:,12.2 矩阵转置,2020/9/11,Y.Xu Copyright USTC,12.2 矩阵转置,2020/9/11,Y.Xu Copyright USTC,12.2 矩阵转置,12.2.2 带状划分的矩阵转置 - 划分: Ann分成p个(n/p)n大小的带 - 算法: Pi有p-1个(n/p)(n/p)大小子块发送到另外
5、p-1个处理器中; 每个处理器本地交换相应的元素 - 时间分析(留作思考),2020/9/11,Y.Xu Copyright USTC,主要内容,12.1 矩阵的划分 12.2 矩阵转置 12.3 矩阵向量乘法 12.4 矩阵乘法,2020/9/11,Y.Xu Copyright USTC,12.3 矩阵向量乘法,求Y=AX 串行算法计算时间t(n)=O(n2),2020/9/11,Y.Xu Copyright USTC,12.3 矩阵向量乘法,12.3.1 带状划分的矩阵-向量乘法 - 划分(行带状划分): Pi存放xi和ai,0,ai,1,ai,n-1, 并输出yi - 算法: 对p=n情
6、形 每个Pi向其他处理器播送xi(多到多播送); 每个Pi计算xj*ai,j,; 注: 对pn情形,算法中Pi要播送X中相应的n/p个分量 (1)超立方连接的计算时间 (2)网孔连接的计算时间,2020/9/11,Y.Xu Copyright USTC,12.3 矩阵向量乘法,- 示例,2020/9/11,Y.Xu Copyright USTC,12.3 矩阵向量乘法,12.3.2 棋盘划分的矩阵-向量乘法 - 划分(块棋盘划分): Pij存放ai,j, xi置入Pi,i中 - 算法: 对p=n2情形 每个Pi,i向Pj,i播送xi(一到多播送); 按行方向进行乘-加与积累运算,最后一列Pi,
7、n-1收集的结果为yi; 注: 对pn2情形,p个处理器排成 的二维网孔, 算法中Pi,i向Pj,i播送X中相应的 个分量 (1)网孔连接的计算时间Tp(CT): .X中相应分量置入Pi,i的通讯时间: .按列一到多播送时间: .按行单点积累的时间:,2020/9/11,Y.Xu Copyright USTC,12.3 矩阵向量乘法,- 示例,2020/9/11,Y.Xu Copyright USTC,12.3 矩阵向量乘法,带状与棋盘划分的比较 - 网孔上带状划分的运行时间 - 网孔上棋盘划分的运行时间 棋盘划分要比带状划分快。,2020/9/11,Y.Xu Copyright USTC,主
8、要内容,12.1 矩阵的划分 12.2 矩阵转置 12.3 矩阵向量乘法 12.4 矩阵乘法,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,- 1.乘法定义 - 4.Fox算法 - 2.实现方法 - 5.Systolic算法 - 3.Cannon算法 - 6.DNS算法,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,乘法定义,A中元素的第2下标与B中元素的第1下标相一致(对准),2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,Matrix multiplication is the most s
9、tudied parallel algorithm. It is a good algorithm to learn because it shows many ideas about parallelism,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,实现方法 - 计算结构:二维阵列 - 空间对准(元素已加载到阵列中) Cannons , Foxs,DNS - 时间对准(元素未加载到阵列中) Systolic,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.1 简单并行分块算法 - 分块: A、B和C分成 的方块阵
10、Ai,j、Bi,j和Ci,j, 大小均为 p个处理器编号为 , Pi,j存放Ai,j、Bi,j和Ci,j。 - 算法: 通讯:每行处理器进行A矩阵块的多到多播送(得到Ai,k, k=0 ) 每列处理器进行B矩阵块的多到多播送(得到Bk,j, k=0 ) 乘-加运算: Pi,j做 - 运行时间 (1)超立方连接: 的时间 的时间,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,-环 (2)二维环绕网孔连接: 的时间 的时间 t2=n3/p - Remark (1)本算法的缺点是对处理器的存储要求过大 每个处理器有 个块,每块大小为n2/p, 所以需要 , p个处理
11、器共需要 , 是串行算法的 倍 (2)p=n2时,t(n)=O(n), c(n)=O(n3),2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.2 Cannon乘法(1969年) - 分块: A、B和C分成 的方块阵Ai,j、Bi,j和Ci,j, 大小均为 p个处理器编号为 , Pi,j存放Ai,j、Bi,j和Ci,j (n p),2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.2 Cannon乘法(1969年) - 算法: 所有块Ai,j(0i,j )向左循环移动i步; 所有块Bi,j(0i,j )向上循环移动
12、j步; 所有处理器Pi,j做执行Ai,j和Bi,j的乘-加运算; A的每个块向左循环移动一步; B的每个块向上循环移动一步; 转执行 次;,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,- 示例: A44, B44, p=16,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,- 示例,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,- 示例,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,- 运行时间 (1)超立方连接: 和执行 次,所以运行时间为 (2)二维网孔连
13、接,CT选路模式: 和执行 次,所以运行时间为,2020/9/11,Y.Xu Copyright USTC,(3)for k=0 to do for all Pi,j par-do (i) Ci,j=Ci,j+Ai,jBi,j (ii) Ai,j Ai,(j+1)mod (iii)Bi,j B(i+1)mod , j endfor endfor End,12.4 矩阵乘法,- 算法描述: Cannon分块乘法算法(网孔连接) /输入: Ann, Bnn; 输出: Cnn Begin (1)for k=0 to do for all Pi,j par-do (i) if ik then Ai,j
14、 Ai,(j+1)mod endif (ii)if jk then Bi,j B(i+1)mod , j endif endfor endfor (2)for all Pi,j par-do Ci,j=0 endfor,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.3 Fox乘法(1987年) - 分块: 同Cannon分块算法 - 算法原理 Ai,i向所在行的其他处理器 进行一到多播送; 各处理器将收到的A块与原 有的B块进行乘-加运算; B块向上循环移动一步; 如果Ai,j是上次第i行播送的块,本次选择 向所 在行的其他处理器进行一到多播送; 转
15、执行 次;,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,- 示例: A44, B44, p=16,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,- 示例,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,- 运行时间 (1)立方连接: 、和(含)执行 次,所以运行时间为 当p=n2时, t(n)=O(nlogn) (2)二维网孔连接,CT选路模式(思考?),2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.4 Systolic乘法(H.T. Kung),a
16、1,4,b4,1,b3,1,b2,1,b2,2,b4,2,b3,2,b2,3,b3,3,b4,3,b2,4,b3,4,b4,4,a1,3,a1,1,a1,2,a2,4,a2,1,a2,2,a2,3,a3,1,a3,2,a3,3,a3,4,b1,1,b1,2,b1,3,b1,4,Step 1,P1,1 c1,1,P1,2 c1,2,P1,3 c1,3,P1,4 c1,4,P2, 1 c2,1,P2,2 c2,2,P2,3 c2,3,P2,4 c2,4,P3,1 c3,1,P3,2 c3,2,P3,3 c3,3,P3,4 c3,4,2020/9/11,Y.Xu Copyright USTC,12.
17、4 矩阵乘法,12.4.4 Systolic乘法(H.T. Kung),c1,1,c1,2,c1,3,c1,4,c2,1,c2,2,c2,3,c2,4,c3,1,c3,2,c3,3,c3,4,b3,1,b2,1,b2,2,b4,2,b3,2,b2,3,b3,3,b4,3,b2,4,b3,4,b4,4,a1,3,a1,1,a1,2,a2,4,a2,1,a2,2,a2,3,a3,1,a3,2,a3,3,a3,4,b1,1,b1,2,b1,3,b1,4,a1,4,b4,1,+,Step 2,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.4 Systolic
18、乘法(H.T. Kung),c1,1,c1,2,c1,3,c1,4,c2,1,c2,2,c2,3,c2,4,c3,1,c3,2,c3,3,c3,4,b2,1,b2,2,b3,2,b2,3,b3,3,b4,3,b2,4,b3,4,b4,4,a1,1,a1,2,a2,1,a2,2,a2,3,a3,1,a3,2,a3,3,a3,4,b1,1,b1,2,b1,3,b1,4,a1,3,b3,1,+,a1,4,b4,2,+,a2,4,b4,1,+,Step 3,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.4 Systolic乘法(H.T. Kung),c1,1
19、,c1,2,c1,3,c1,4,c2,1,c2,2,c2,3,c2,4,c3,1,c3,2,c3,3,c3,4,b2,2,b2,3,b3,3,b2,4,b3,4,b4,4,a1,1,a2,1,a2,2,a3,1,a3,2,a3,3,b1,1,b1,2,b1,3,b1,4,a1,2,b2,1,+,a1,3,b3,2,+,a2,3,b3,1,+,a1,4,b4,3,+,a3,4,b4,1,+,a2,4,b4,2,+,Step 4,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.4 Systolic乘法(H.T. Kung),c1,1,c1,2,c1,3,c
20、1,4,c2,1,c2,2,c2,3,c2,4,c3,1,c3,2,c3,3,c3,4,b2,3,b2,4,b3,4,a2,1,a3,1,a3,2,b1,2,b1,3,b1,4,a1,1,b1,1,+,a1,2,b2,2,+,a2,2,b2,1,+,a1,3,b3,3,+,a3,3,b3,1,+,a2,3,b3,2,+,a1,4,b4,4,+,a2,4,b4,3,+,a3,4,b4,2,+,Step 5,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.4 Systolic乘法(H.T. Kung),c1,1,c1,2,c1,3,c1,4,c2,1,c2
21、,2,c2,3,c2,4,c3,1,c3,2,c3,3,c3,4,b2,4,a3,1,b1,3,b1,4,a1,1,b1,2,+,a2,1,b1,1,+,a1,2,b2,3,+,a3,2,b2,1,+,a2,2,b2,2,+,a1,3,b3,4,+,a2,3,b3,3,+,a3,3,b3,2,+,a2,4,b4,4,+,a3,4,b4,3,+,Step 6,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.4 Systolic乘法(H.T. Kung),c1,1,c1,2,c1,3,c1,4,c2,1,c2,2,c2,3,c2,4,c3,1,c3,2,c
22、3,3,c3,4,b1,4,a1,1,b1,3,+,a3,1,b1,1,+,a2,1,b1,2,+,a1,2,b2,4,+,a2,2,b2,3,+,a3,2,b3,2,+,a2,3,b3,4,+,a3,3,b3,3,+,a3,4,b4,4,+,Step 7,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.4 Systolic乘法(H.T. Kung),c1,1,c1,2,c1,3,c1,4,c2,1,c2,2,c2,3,c2,4,c3,1,c3,2,c3,3,c3,4,a1,1,b1,4,+,a2,1,b1,3,+,a3,1,b1,2,+,a2,2,b
23、2,4,+,a3,2,b2,3,+,a3,3,b3,4,+,Step 8,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.4 Systolic乘法(H.T. Kung),c1,1,c1,2,c1,3,c1,4,c2,1,c2,2,c2,3,c2,4,c3,1,c3,2,c3,3,c3,4,a2,1,b1,4,+,a3,1,b1,3,+,a3,2,b2,4,+,Step 9,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.4 Systolic乘法(H.T. Kung),c1,1,c1,2,c1,3,c1,4,c2
24、,1,c2,2,c2,3,c2,4,c3,1,c3,2,c3,3,c3,4,a3,1,b1,4,+,Step 10,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.4 Systolic乘法(H.T. Kung),P1,1 c1,1,P1,2 c1,2,P1,3 c1,3,P1,4 c1,4,P2, 1 c2,1,P2,2 c2,2,P2,3 c2,3,P2,4 c2,4,P3,1 c3,1,P3,2 c3,2,P3,3 c3,3,P3,4 c3,4,Over,c1,1 = a1,1 b1,1 + a1,2 b2,1 + a1,3 b3,1 + a1,4
25、 b4,1 c1,2 = a1,1 b1,2 + a1,2 b2,2 + a1,3 b3,2 + a1,4 b4,2 c3,4 = a3,1 b1,4 + a3,2 b2,4 + a3,3 b3,4 + a3,4 b4,4,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法: Systolic算法,/输入: Amn, Bnk; 输出: Cmk Begin for i=1 to m par- do for j=1 to k par-do (i) ci,j = 0 (ii) while Pi,j 收到a和b时 do ci,j = ci,j +ab if i m then
26、 发送b给Pi+1,j endif if j k then 发送a给Pi,j+1 endif endwhile endfor endfor End,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.5 DNS乘法 - Motivation: From a good and common idea,j,i,A,B,C,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.5 DNS乘法 - Motivation: From a good and common idea How to use processors more
27、 effectively and practically?,.,=,.,+,+,+,n processors for each result element implies n x n2 = n3,time is log2 n,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,12.4.5 DNS乘法(1981年) - 背景: 由Dekel、Nassimi和Sahni提出的SIMD-CC上的矩阵乘法, 处理器 数目为n3, 运行时间为O(logn), 是一种速度很快的算法。 - 基本思想: 通过一到一和一到多的播送办法,使得处理器(k,i,j)拥有ai,k和bk,
28、j, 进行本地相乘,再沿k方向进行单点积累求和,结果存储在处理器(0,i,j)中。 - 处理器编号: 处理器数p=n3= (2q)3=23q, 处理器Pr位于位置(k,i,j), 这里r=kn2+in+j, (0i, j, kn-1)。位于(k,i,j)的处理器Pr的三个寄存器 Ar,Br,Cr分别表示为Ak,i,j, Bk,i,j和Ck,i,j, 初始时均为0。 - 算法: 初始时ai,j和bi,j存储于寄存器A0,i,j和B0,i,j; 数据复制:A,B同时在k维复制(一到一播送); A在j维复制(一到多播送); B在i维复制(一到多播送); 相乘运算:所有处理器的A、B寄存器两两相乘; 求和运算:沿k方向进行单点积累求和;,2020/9/11,Y.Xu Copyright USTC,12.4 矩阵乘法,- 示例 C00=1(-5)+27=9 C01=1(-6)+28=10 C10=3(-5)+47=13 C11=3(-6)+48=14,初始加载,(b)A,B沿k维复制,(c)A沿j维复制,(d)B沿i维复制,(e)点积,(f)沿k维求和,B,B,A,A,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 技术革新与个人成长考核试卷
- 农业科技创新与农村产业结构调整策略考核试卷
- 建筑室内空气质量管理与低碳施工技术考核试卷
- 中药店铺传统元素融入设计考核试卷
- 四川省情考试试题及答案
- 2025年广西壮族自治区中考物理试题(解析版)
- 地下管线探测合同模板
- 儿童情景剧 剧本-流动儿童
- 儿科护理学试题(附答案)
- 2025届浙江省杭二中化学高一下期末质量跟踪监视试题含解析
- 教育改革与未来教育趋势-教育改革议题与未来
- 签约抖音博主合同协议
- 房屋停租合同协议
- 银行客户分类管理
- 区域保护合同协议
- 放射科入科试题及答案
- 房地产公司完整绩效考核制度
- 2025年出国考试题库及答案
- 以绘本为载体的大班幼儿美育实践研究
- 学校电工聘用合同
- 溶瘤病毒工艺开发流程
评论
0/150
提交评论