并行程序的设计Chapter5.ppt

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 并行算法及应用 刘 轶 北京航空航天大学 计算机学院 5.1 矩阵乘法 5.1 矩阵乘法 一、简介 n×n矩阵乘法: for ( i = 0; i n; i++ ) for ( j = 0; j n; j++ ) { c[i][j] = 0; for ( k = 0; k n; k++ ) c[i][j] = c[i][j] + a[i][k] * b[k][j]; } 顺序代码 顺序代码的时间复杂性:O(n3) 两个外层循环没有相关性,可并行执行 如用n个处理器,时间复杂性O(n2) 如用n2个处理器,时间复杂性O(n) 如用n3个处理器,可减为O(logn) 优化内层循环,使用树结构 仅为理想状态,未考虑通信 5.1 矩阵乘法 二、块矩阵乘法 通常所使用的处理器个数远小于n,每个处理器要处理一组数据 矩阵可以被划分成若干子矩阵 设n×n矩阵的行、列均被s等分,则矩阵被划分为s2个子矩阵,每个子矩阵有n/s×n/s个元素 设m=n/s,则子矩阵元素个数为m×m 块矩阵乘法 for ( p = 0; p s; p++ ) for ( q = 0; q s; q++ ) { Cp,q = 0; for ( r = 0; r m; r++ ) Cp,q = Cp,q + Ap,r * Br,q; } 块矩阵乘法代码 5.1 矩阵乘法 4×4矩阵乘法 将4×4矩阵划分为四个2×2矩阵 块矩阵 乘法 5.1 矩阵乘法 并行算法分析(不考虑子矩阵划分) 设n×n矩阵,使用n2个处理器,每个处理器需收到1行和1列元素,并把计算结果(cij)返回给主处理器,则通信时间: 每个处理器需进行n次乘法和n次加法,计算时间: 使用树结构可在n台处理器上用logn时间完成n个元素的加法 因此,关于计算复杂性有: 如使用n2处理器,O(n) 如使用n3处理器,O(logn) 5.1 矩阵乘法 并行算法分析(考虑子矩阵划分) 设矩阵的行、列被s等分(划分为s2个子矩阵),设m=n/s,子矩阵元素个数为m×m 使用s2个处理器,每个处理器需接收1行和1列元素,每个元素为的m×m子矩阵,则通信时间: 注:一行/列的元素个数 = s×(m×m) = n×m 每个处理器需进行s次子矩阵乘法和s次子矩阵加法,顺序执 行一次子矩阵乘法需m3次乘法和m3次加法,执行一次子矩阵加法又需要m2次加法,因此计算时间: 5.2 求解线性方程组 一、简介 假设有线性方程组: an-1,0x0 + an-1,1x1 + an-1,2x2 … + an-1,n-1xn-1 = bn-1 … … … … a2,0x0 + a2,1x1 + a2,2x2 … + a2,n-1xn-1 = b2 a1,0x0 + a1,1x1 + a1,2x2 … + a1,n-1xn-1 = b1 a0,0x0 + a0,1x1 + a0,2x2 … + a0,n-1xn-1 = b0 可将其写成矩阵形式: Ax = b 两种不同的求解方法: 稀疏矩阵(矩阵中大部分元素为0):迭代方法 稠密矩阵(矩阵中大部分元素为非0):数学方法直接求解 用高斯消去法转换为三角矩阵 用逐级回代的方法求解三角方程组 二、求解三角方程组 线性方程组的特殊形式 --- 三角方程组的求解方法 an-1,0x0 + an-1,1x1 + an-1,2x2 … + an-1,n-1xn-1 = bn-1 … … … … a2,0x0 + a2,1x1 + a2,2x2 = b2 a1,0x0 + a1,1x1 = b1 a0,0x0

文档评论(0)

189****6140 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档