- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
矩阵相乘-并行算法
报告提交日期
报告提交日期 2014-01-13
并行处理技术
课程设计分析报告
课程设计题目矩阵相乘并行算法设计
课程设计题目
矩阵相乘并行算法设计
廖杰
学号专业M201372880
学号
专业
计算机技术
任课教师
金海石宣化
所在学院
计算机科学与技术学院
一、 实验目的
1、 学习使用集群;
2、 掌握并行处理或分布计算的编程方法;
3、 学会以并行处理的思想分析问题。
二、 实验要求
1、 自行生成矩阵作为算法的输入;
2、 使用并行处理技术编程,例如:MPI、OpenMP、
MR;
3、 矩阵大小至少为1000*1000;
4、 加速比越大成绩越高。
三、实验内容
3.1、矩阵的划分:
对于矩阵相乘的并行算法,可以有三种:对矩阵 按行划分、按列划分和棋盘式分块划分。和按行 或列划分相比,棋盘式划分可以开发出更高的并
行度。对于一个nxn的方阵,棋盘划分最多可 以使用n^2个处理器进行并行计算,但使用按行 或列分解最多可以使用n个。对矩阵相乘采用棋 盘式划分的算法通常称作Cannon算法。
行列划分
又叫带状划分(Striped Partitioning ),就是 将矩阵整行或者整列分成若干个组,每个组指派 给一个处理器。下图所例为4个CPU8X 8矩阵 的带状划分。
Po
Po Ph 巧
%a21%5(笳矩阵拎列划分
%
a21
%
5
(笳矩阵拎列划分
在带状划分情况下,每个 CPU将会均匀分配到2
行(列)数据。8X 8矩阵变成了一个1X 4或4X 1
的分块矩阵,每个CPC所属的分块矩阵大小为8 X 2 或 2X 8。
B)棋盘划分
就是将矩阵分成若干个子矩阵,每个子矩阵指派 给一个处理器,此时任一处理器均不包含整行或 者整列。下图所示即为4个处理器情况下8X 8 矩阵的棋盘划分,其中处理器阵列为 2X 2,每 个处理器分配到的子矩阵大小为 4 X 4。
矩阵划分成棋盘状可以和处理器连成二维网孔 相对应。对于一个nXn维矩阵和pX p的二维处 理器阵列,每个处理器均匀分配有(n/p ) X (n/p)=门八2/卩八2 个元素。使用棋盘式划分的矩阵
相乘算法一般有两种,Cannon算法和Summ算
法。SUMM
法。SUMM算法能够计算
m*l的A矩阵和l*n的
B矩阵相乘(ml、n可不相等),而cannon算 法只能实现n*n的A矩阵和n*n的B矩阵相乘, 具有很大的局限性。
3.2、算法原理
A)行划分法
假设是M*N计算前,将矩阵N发送给所有从进 程,然后将矩阵M分块,将M中数据按行分给各 从进程,在从进程中计算M中部分行数据和N的 乘积,最后将结果发送给主进程。这里为了方便, 有多少进程,就将M分了多少块,除最后一块外 的其他数据块大小都相等,最后一块是剩下的数 据,大小大于等于其他数据块大小,因为矩阵行 数不一定整除进程数。最后一块数据在主进程中 计算,其他的在从进程中计算。
定义两个矩阵M和N, N所有进程都需要,M可 以只在主进程中定义。其他的变量视主进程和从 进程需要按要求定义在合适的位置。
代码参见附录部分。
B) Cannon 算法
Can no n算法的基本思想可以如下表示:假设两 个矩阵A和B相乘,把A和B矩阵划分成p个方 块,进程的编号从內到并在最初把子矩阵九 和兀分配给%。虽然第i行的每个进程需要全部巒 的个子矩阵血,但我们还是能调度第i行“个进 程的计算,使得每个进程在任何时刻都是用不同 的也。每完成一次矩阵乘法,这些块在各进程之 间被轮流使用,似的每次轮流之后每个进程都可 以得到新的I仙。对列使用同样的调度,则在任何 时刻,任何进程至多拥有每个矩阵的一个块,在 所有进程中,改算法需要的总内存量为1,2o下图 为此算法中不同进程上子矩阵乘法的调度过程。
AqqA辭AA iq—Sr p pA i,i
Aqq
A辭
A
A iq
—Sr p p
A i,i
A 1,2
■-
A 2」
2
A 3,0
AU
A裁
(i) Ini till alignment of A
? 0,0
;B呼
? 1
1 h
B ? m
!
:
1 ■
1 1
E \fl
::
1 ”
: A
] I
1 ■
1 1
W :
耳;
1 I
1 *
1 A
J
I D ? -J ! i I
1 1
r
1 V
If r 1
;B込 i 1
B Jfl
1
■ 1
D3, l
V 1
1 1
事B 1
° 3,1
I * bJ
(b) Initial alig time nt of E
\ Aa,o
丄,Y
、A 0,1
*
丄 Y-
I Ao,2
A 0,3
j
f
j B iti
ff
i
;B邛
*
T人 Y
L, A lTl
\ A i ?
\ Ai,r
;,A ino
f
您可能关注的文档
最近下载
- 办公楼空调系统的高效维护方案.docx
- 贵州省遵义市红花岗区第十二中学2023-2024学年七年级下学期期中数学试题(原卷版).docx VIP
- 贵州省遵义市红花岗区第十二中学2023-2024学年七年级下学期期中数学试题(解析版).docx VIP
- 《利用本地农村乡土资源助推美术教学的研究》研究报告.doc
- 市委党校物业管理服务总体方案.doc VIP
- 国有企业合规管理办法.pdf VIP
- 2024《盒马鲜生冷供应链物流成本现状、问题及完善对策研究》11000字.docx
- 机器视觉软件:Basler二次开发_(3).Basler相机驱动与SDK安装.docx
- 高中语文(统编版)必修上册+下册单元任务与人文主题 复习梳理.docx
- 2019年重庆市高职分类招生考试(中职类)药剂类真题.pdf VIP
文档评论(0)