矩阵乘法并行算法分析.pptVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第1页,共25页,星期日,2025年,2月5日矩阵乘法的串行算法矩阵乘法的并行算法块矩阵乘法中常用算法分析实验总结第2页,共25页,星期日,2025年,2月5日矩阵乘法的串行算法基本计算方式算法实现算法分析第3页,共25页,星期日,2025年,2月5日矩阵乘法的串行算法基本计算方式: 算法实现: for(i=0;in;i++) for(j=0;jn;j++) for(l=0;ln;l++) c[i][j]=c[i][j]+a[i][k]*b[k][j];第4页,共25页,星期日,2025年,2月5日矩阵乘法的串行算法算法分析: 该算法需要进行n3个乘法运算和n3个加法运算,顺序代码的时间复杂度为O(n3)。第5页,共25页,星期日,2025年,2月5日矩阵乘法的并行算法引入原因解决手段块矩阵算法第6页,共25页,星期日,2025年,2月5日矩阵乘法的并行算法引入原因: 通过观察串行算法,可以发现两个外层循环的每一次迭代不依赖于其他任何迭代,并且内层循环的各个步骤可以并行执行。第7页,共25页,星期日,2025年,2月5日矩阵乘法的并行算法解决手段:引入多个处理器:当用n个处理器进行n*n矩阵乘法时,可以容易的获得并行的时间复杂度为O(n2)。用n2个处理器时时间复杂度为O(n)。 缺点:虽然引用多处理器可降低时间复杂度,但降低的时间复杂度是针对计算而言,增加处理器会导致显著的通信开销的增加。实际中一般结合块矩阵实现。划分成子矩阵:通过块矩阵乘法实现。第8页,共25页,星期日,2025年,2月5日矩阵乘法的并行算法块矩阵乘法:将矩阵划分为若干子矩阵,子矩阵作为单个矩阵元素参与运算,假设分为s2个子矩阵(行列s等分),每个子矩阵有n/s*n/s个元素,若用Ap,q表示第p行第q列的子矩阵,则算法如下: for(p=0;ps;p++) for(q=0;qs;q++) for(r=0;rm;r++) Cp,q=Cp,q+Ap,r*Br,q;第9页,共25页,星期日,2025年,2月5日矩阵乘法的并行算法说明: Cp,q=Cp,q+Ap,r*Br,q表示利用矩阵乘法将子矩阵Ap,r和Br,q相乘,再利用矩阵加法将乘积累加到子矩阵Cp,q上。当处理器数目小于n时,该方法是所有并行实现的核心。第10页,共25页,星期日,2025年,2月5日矩阵乘法的并行算法块矩阵乘法示例:第11页,共25页,星期日,2025年,2月5日块矩阵乘法中常用算法分析行列划分算法行行划分算法列列划分算法其它算法第12页,共25页,星期日,2025年,2月5日块矩阵乘法中常用算法分析算法中使用的参数命名约定: 假设有p个处理机,Pj表示第j个处理机,Pmyid表示当前运行程序的处理机,send(x,j)和recv(x,j)分别表示在Pmyid中把x传送到Pj和从Pj中接收x。讨论的算法都是在Pmyid处理机上的。用imodp表示i对p取模运算。A和B分别是m*k和k*n矩阵,C是m*n矩阵。设设m=m’*p,k=k’*p和n=n’*p。主要讨论实验中使用的行列划分算法。第13页,共25页,星期日,2025年,2月5日块矩阵乘法中常用算法分析行列划分算法 将矩阵A和B分别划分为如下的行块子矩阵和列块子矩阵:Ci,j=Ai*Bj,其中Ci,j是m’*n’矩阵,Ai、Bi和Ci,j存放在Pi中,这种存放方式使数据在处理机种不重复。第14页,共25页,星期日,2025年,2月5日块矩阵乘法中常用算法分析行列划分算法 由于使用p个处理机,每次每台处理机计算出一个Ci,j,计算C需要p次来完成。Ci,j的计算是按对角线进行的,计算方法如下: for(i=0;ip-1;i++){ l=i+myidmodp; Cl=A*B; mp1=myid+1modp;mm1=myid-1modp; if(i!=p-1){send(B,mm1);recv(B,mp1);} }第15页,共25页,星期日,2025年,2月5日块矩阵乘法中常用算法分析行列划分算法算法分析: 在这个算法中,Cl=Cmyid,l,A=Amyid,B在处理机中每次循环向前移动一个处理机,每次交换数据为k*n’矩阵,交换次数为p-1次。如果用D行,列表示算法中数据的交换量,C行,列表示算法中的计算量,则有: D行,列=2*k*(n-n’),C行,列=m*k*n/p。第16页,共25页,星期日,2025年,2月5日块矩阵乘法中常用算法

文档评论(0)

xiaolan118 + 关注
实名认证
文档贡献者

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档