2022年2022年矩阵乘法的OpenMP实现及性能分析 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年2022年矩阵乘法的OpenMP实现及性能分析 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年矩阵乘法的OpenMP实现及性能分析 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一. 实验目的1) 用 OpenMP 实现最基本的数值算法“矩阵乘法”2) 掌握 for 编译制导语句3) 对并行程序进行简单的性能二. 实验环境1) 硬件环境: 32 核 CPU、32G 内存计算机;2) 软件环境: Linux 、Win2003 、GCC、MPICH 、VS2008;4) Windows 登录方式:通过远程桌面连接192.168.150.197,用户名和初始密码都是自己的学号。三. 实验内容1. 用 OpenMP 编写两个 n 阶的方阵a 和 b 的相乘程序,结果存放在方阵c 中, 其中乘法用for 编译制导语句实现并行化操作,并调节for 编译制导中schedule 的参
2、数,使得执行时间最短,写出代码。方阵 a 和 b 的初始值如下:12,.,2, 1,.2,.,5 ,4, 31,.,4 , 3, 2,.,3 ,2 , 1nnnnnnna1,.,1, 1 ,1.1,.,1, 1 ,11,.,1, 1 ,11,.,1, 1 ,1b输入:方阵的阶 n、并行域的线程数输出:c 中所有元素之和、程序的执行时间提示:a,b,c 的元素定义为int 型, c 中所有元素之各定义为long long 型。Windows 计时 : 用中的 clock_t clock( void ) 函数得到当前程序执行的时间Linux 计时 : #include timeval start,
3、end; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - gettimeofday(&start,NULL); gettimeofday(&end,NULL); coutexecution time: (end.tv_sec-start.tv_sec)+(double)(end.tv_usec-start.tv_usec)/ 1000000seconds endl; 答:在 windows 下使用 Microsofe Visu
4、al Studio编程,源代码如下:#include #include #include #define NN 2000 int aNNNN, bNNNN; longlong cNNNN; void solve(int n, int num_thread) int i, j, t, k, time; clock_t startTime, endTime; longlong sum; omp_set_num_threads(num_thread); for (i=0;in;i+)/ 对矩阵 a和矩阵 b进行初始化 t=i+1; for(j=0;jn;j+) aij=t+; bij=1; star
5、tTime=clock(); sum=0; #pragma omp parallel shared(a,b,c) private(i,j,k) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - #pragma omp for schedule(dynamic) for (i=0;in;i+) for(j=0;jn;j+) cij=0; for(k=0;kn;k+) cij+=aik*bkj; for (i=0;in;i+)for
6、(j=0;jn;j+) sum+=cij; endTime=clock(); time=endTime-startTime; printf(sum=%lld time=%dmsn,sum,time); int main() int n, num_thread; while(scanf(%d%d ,&n,&num_thread)!=EOF) solve(n,num_thread); return 0; 2. 分析矩阵相乘程序的执行时间、加速比和效率: 方阵阶固定为1000,节点数分别取1、2、4、8、16 和 32 时,为减少误差,每项实验进行5 次,取平均值作为实验结果。答:串行执行时程序的执
7、行时间为:T = 15.062s 加速比 =顺序执行时间 /并行执行时间名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 效率 =加速比 /节点数表 1 不同节点数下程序的执行时间(秒)节点数实验结果1 2 4 8 16 32 第 1 次16.640 8.172 4.078 2.125 1.093 0.594 第 2 次16.422 8.156 4.172 2.141 1.078 0.578 第 3 次16.406 8.266
8、4.078 2.125 1.094 0.563 第 4 次16.781 8.172 4.079 2.109 1.094 0.563 第 5 次16.422 8.171 4.078 2.125 1.093 0.578 平均值16.5342 8.1874 4.0970 2.1250 1.0904 0.5752 图 1 不同节点数下程序的执行时间名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 图 2 不同节点数下程序的加速比图 3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年矩阵乘法的OpenMP实现及性能分析 2022 矩阵 乘法 OpenMP 实现 性能 分析
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内