MPI并行程序-矩阵分块乘法( Matrix multiplication : Two-Demension Method)

问题引入:


主体思路:(为了尽可能使计算简便,所有的实验矩阵均是方阵)

1.    对于A,B矩阵,首先根据子进程数p将其划分成p块形式相同的小矩阵块,其中每个矩阵块只要求是方阵即可,具体可以是1阶的,2阶的或n阶的。这里的子进程数p我采用了用于具体计算的进程数量,即除0进程以外的所有进程。划分完毕后,每个进程都持有矩阵A与矩阵B对应位置的一对儿分块阵。

2.    对A,B矩阵进行初始位置分配,这里不好用语言描述,下面三阶分块阵为例,给出示意图(因为二阶分块阵在课件中已经给出且不具一般性):

对于矩阵A

一个箭头表示移动一次,方向为左,移动完成后为

对于矩阵B

一个箭头表示移动一次,方向为上,移动完成后为

  

A,B位置初始化完成后,对应位置分块阵相乘,重新组合成的矩阵为C0

之后,【矩阵A所有行按上述规则左移一次,B的所有列上移一次,再对应相乘相加,得到矩阵C1】,重复步骤【】p-1次,依次得到C1,C2,,,Cn

对于上述三阶分块阵来说,将得到的C0,C1,C2相加即

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值