下载后可任意编辑北京科技大学 计算机与通信工程学院实 验 报 告实验名称: 学生姓名: 专 业: 班 级: 学 号: 指导老师: 实验成绩:________________________________实验地点: 实验时间:2024 年 05 月下载后可任意编辑下载后可任意编辑一、实验目的与实验要求1、实验目的1 对比矩阵乘法的串行和并行算法,查看运行时间,得出相应的结论;2 观察并行算法不同进程数运行结果,分析得出结论;2、实验要求1 编写矩阵乘法的串行程序,多次运行得到结果汇总;2 编写基于 MPI,分别实现矩阵乘法的并行化。对实现的并行程序进行正确性测试和性能测试,并对测试结果进行分析。二、实验设备(环境)及要求《VS2024》C++语言MPICH2三、实验内容与步骤实验 1,矩阵乘法的串行实验(1)实验内容编写串行程序,运行汇总结果。(2)主要步骤根据正常的矩阵乘法计算方法,在《VS2024》上编写矩阵乘法的串行程序,编译后多次运行,得到结果汇总。下载后可任意编辑实验 2 矩阵乘法的并行化实验3 个总进程下载后可任意编辑5 个总进程7 个总进程下载后可任意编辑9 个进程16 个进程四:实验结果与分析下载后可任意编辑(一)矩阵乘法并行化矩阵并行化算法分析:并行策略:1 间隔行带划分法算法描述:将 C=A*B 中的 A 矩阵按行划分,从进程分得其中的几行后同时进行计算,最后通信将从进程的结果合并的主进程的 C 矩阵中对于矩阵 A*B如图:进程 1:矩阵 A 第一行 进程 2:矩阵 A 第二行 进程 3:矩阵 A 第三行 进程 1:矩阵 A 第四行时间复杂度分析:f(n) =6+2+8+k*n+k*n+k*n+3+10+n+k*n+k*n+n+2(k 为从进程分到的行数)因此 O(n)=(n);空间复杂度分析:从进程的存储空间不共用,f(n)=n;因此 O(n)=(n);2 间隔行带划分法算法描述:将 C=A*B 中的 A 矩阵按行划分,从进程分得其中的几行后同时进行计算,最后通信将从进程的结果合并的主进程的 C 矩阵中对于矩阵 A*B如图:进程 1:矩阵 A 第一行 进程 2:矩阵 A 第二行 进程 3:矩阵 A 第三行 进程 3:矩阵 A 第四行时间复杂度分析:f(n) =6+2+8+k*n+k*n+k*n+3+10+n+k*n+k*n+n+2(k 为从进程分到的行数)因此 O(n)=(n);空间复杂度分析:从进程的存储空间不共用,f(n)=n;下载后可任意编辑因此 T(n)=O(n);测试环境简介:《VS2024》Win7 旗舰版正确性测试结果:并行结果:串行结果:通过比较发现两者相同,因此可以确定运算结果正确...