电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

并行计算-实验二-矩阵乘法的OpenMP实现及性能分析

  • 资源ID:88636226       资源大小:206KB        全文页数:8页
  • 资源格式: DOC        下载积分:15金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要15金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

并行计算-实验二-矩阵乘法的OpenMP实现及性能分析

深 圳 大 学实 验 报 告课程名称:并行计算实验名称:矩阵乘法的OpenMP实现及性能分析姓 名: 学 号:班 级: 实验日期:2011年10月21日、11月4日一.实验目的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的参数,使得执行时间最短,写出代码。方阵a和b的初始值如下: 输入:方阵的阶n、并行域的线程数输出:c中所有元素之和、程序的执行时间提示:a,b,c的元素定义为int型,c中所有元素之各定义为long long型。Windows计时:用<time.h>中的clock_t clock( void )函数得到当前程序执行的时间Linux计时:#include <sys/time.h>timeval start,end;gettimeofday(&start,NULL);gettimeofday(&end,NULL);cout<<"execution time:"<< (end.tv_sec-start.tv_sec)+(double)(end.tv_usec-start.tv_usec)/ 1000000<<"seconds" <<endl;答:在windows下使用Microsofe Visual Studio编程,源代码如下:#include <omp.h>#include <stdio.h>#include <time.h>#define NN 2000int aNNNN, bNNNN;long long cNNNN;void solve(int n, int num_thread)int i, j, t, k, time;clock_t startTime, endTime;long long sum;omp_set_num_threads(num_thread);for(i=0;i<n;i+)/对矩阵a和矩阵b进行初始化t=i+1;for(j=0;j<n;j+)aij=t+;bij=1;startTime=clock();sum=0;#pragma omp parallel shared(a,b,c) private(i,j,k)#pragma omp for schedule(dynamic)for(i=0;i<n;i+)for(j=0;j<n;j+)cij=0;for(k=0;k<n;k+)cij+=aik*bkj;for(i=0;i<n;i+)for(j=0;j<n;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次,取平均值作为实验结果。答: 串行执行时程序的执行时间为:T = 15.062s加速比=顺序执行时间/并行执行时间效率=加速比/节点数表1 不同节点数下程序的执行时间(秒) 节点数实验结果12481632第1次16.6408.1724.0782.1251.0930.594第2次16.4228.1564.1722.1411.0780.578第3次16.4068.2664.0782.1251.0940.563第4次16.7818.1724.0792.1091.0940.563第5次16.4228.1714.0782.1251.0930.578平均值16.53428.18744.09702.12501.09040.5752图1 不同节点数下程序的执行时间图2 不同节点数下程序的加速比图3 不同节点数下程序的效率执行时间的分析:随着节点数的增加,程序的执行时间减少,大概可以从结果中得出,随着节点书的增加一倍,执行时间减少一半加速比的分析:随着节点数的增加,程序的加速比增加,大概可以从结果中得出,随着节点书的增加一倍,加速相应的增加接近一倍效率的分析:随着节点数的增加,程序的效率逐渐减少3. 分析矩阵相乘程序的问题规模与效率的关系:固定节点数为4,让方阵阶从200到1600之间变化,每隔100取一个值。(为了减少时间,每项实验可只执行1次)答:表2 相同节点数下不同问题规模程序的执行时间与效率方阵阶数并行执行时间串行执行时间效率2000.0150.0470.7833333000.0160.1091.7031254000.0630.2971.1785715000.1560.6571.0528856000.4061.641.0098527000.9073.5780.9862188001.6096.360.9881919002.57810.1090.98031410003.81214.8910.97658711005.3921.0320.9755112007.34428.7340.97814513009.68837.9370.978969140012.42248.640.978908150015.65660.9380.973077160019.23474.8290.972614图3.1 不同问题规模下程序的效率问题规模与效率的关系分析:随着问题规模的增加,程序的效率趋于稳定,但是略微有点下降。

注意事项

本文(并行计算-实验二-矩阵乘法的OpenMP实现及性能分析)为本站会员(206****923)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.