- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                
 PAGE    21
目录
 TOC \o 1-3 \h \z \u 
  一、题目及要求	 1
  1、题目	 1
  2、要求	 1
  二、设计算法、算法原理	 1
  三、算法描述、设计流程	 2
  3.1算法描述	 2
  3.2设计流程	 4
  四、源程序代码及运行结果	 6
  1、超立方	 6
  1.1超立方的源程序代码	 6
  1.2运行结果	 11
  2、网孔连接	 11
  2.1源程序代码	 11
  2.2运行结果	 18
  3、在数学软件中的计算结果	 19
  五、算法分析、优缺点	 19
  1、简单的并行分块乘法的过程为	 19
  2、使用Cannon算法时的算法分析	 20
  3、算法的优缺点	 21
  六、总结	 22
  参考文献	 23
一、题目及要求
1、题目
简单并行分块乘法:(1)情形1: 超立方连接;(2)情形2:二维环绕网孔连接
已知求。
2、要求
(1)题目分析、查阅与题目相关的资料;
(2)设计算法;
(3)算法实现、代码编写;
(4)结果分析和性能分析与改进;
(5)论文撰写、答辩;
二、设计算法、算法原理
要考虑的计算问题是C=AB,其中A与B分别是矩阵。
 = 1 \* GB3 ①A、B和C分成的方块阵,和,大小均为 ,p个处理器编号为, 存放,和。
 = 2 \* GB3 ②通讯:每行处理器进行A矩阵块的多到多播送(得到, k=0~ )
每列处理器进行B矩阵块的多到多播送(得到, k=0~  )
 = 3 \* GB3 ③乘-加运算: 做
三、算法描述、设计流程
3.1算法描述
超立方情形下矩阵的简单并行分块算法
输入:待选路的信包在源处理器中
输出:将原处理器中的信包送至其目的地
Begin
for i=1 to n do
endfor
  (2) 
  (3) while do
           (3.1)if then从当前节点V选路到节点为V1
          (3.2)
      endwhile
End
二维网孔情形下矩阵的简单并行分块算法
输入:待选路的信包处于源处理器中
输出:将各信包送至各自的目的地中
Begin
沿x维将信包向左或向右选路至目的地的处理器所在的列
沿y维将信包向上或向下选路至目的地的处理器所在的行
分块乘法算法
  //输入: , ; 子快大小均为    输出: n 
Begin
       (1)for i=0 to  do
               for all par-do
                   if ik then
                         ?
                              endif 
                  if jk then
                         ? B(i+1)mod , j  
                      endif 
               endfor 
           endfor 
       for i=0 to           do
               for all  par-do
                     =+
               endfor 
           Endfor
 End
3.2设计流程
以下是二维网孔与超立方连接设计流程。 如图3-1
二维网孔
步骤:
(1)先进行行播送;
(2)再同时进行列播送;
3
3
7
6
2
5
1
4
9
8
0
4
4
4
4
4
4
4
4
4
2
2
3
3
3
3
1
11
12
13
14
15
10
                   
图3-1 二维网孔示意图
超立方
步骤:依次从低维到高维播送, d-立方,  d=0,1,2,3,4…;
算法流程如图所示:
包括
包括mpi的头文件
相关变量声明
MPI_INIT()
MPI_COMM_RANK()
MPI_COMM_SIZE()
进入MPI系统
矩阵内部的通信
应用控制实体:
矩阵内部的计算程序
MPI_FINALIZE()
退出MPI系统
结束
开始
循环直至结束
图3-2 算法流程
四、源程序代码及运行结果
1、超立方
1.1超立方的源程序代码
#include stdio.h
#include stdlib.h
#include mpi.h
#define intsize sizeof(int)
#define floatsize sizeof(float)
#define charsize sizeof(char)
#define A(x,y) A[
                 原创力文档
原创力文档 
                        

文档评论(0)