版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程名称:并行计算实验名称:矩阵乘法的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编译制导语句实现并行化操
2、作,并调节for编译制导中schedule的参数,使得执行时间最短,写出代码。方阵a和b的初始值如下:彳 2,3,.,n,1 ,1,.,1 -2,3,4,.,n书,1 ,1,.,13,4,5,.n 421 1 ,',',.,1b n, n +1,n +2,.,2n H1 1 ,',',.,1输入:方阵的阶n、并行域的线程数输出:c中所有元素之和、程序的执行时间提示:a,b,c的元素定义为int型,c中所有元素之各定义为long long型。Windows 计时:用time.h中的clock_t clock( void )函数得到当前程序执行的时间Linux计时:
3、#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 V isual Studio
4、编程,源代码如下:#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
5、<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;prin
6、tf( "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加速比=顺序执行时间/并行执行时间效率=加速比e点数表1不同节点数
7、下程序的执行时间(秒)点数实验结果.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不同节点数下程序
8、的加速比节点个数图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.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮就餐协议合同范本
- 饭店餐桌寄卖合同范本
- 饲料采购意向合同范本
- 虚拟数字人在品牌传播中的多样化应用与策略
- 组装电脑购销合同范本
- 联营合作店铺合同范本
- 缝纫配件采购合同范本
- 美业双方合作合同范本
- 老旧牌匾出售合同范本
- 自养金鱼售卖合同范本
- 美牙合作协议合同书
- 物流仓储管理操作流程与指南
- 2022年部编版三年级语文上册课内重点句子仿写练习题附答案
- 医院装修整改合同范例
- 事故隐患内部报告奖励制度
- 2025年1月国家开放大学法学本科《中国法律史》期末纸质考试试题及答案
- 酒店收益管理与提升策略实战手册
- 高三生物二轮复习课件微专题糖尿病和血糖调节
- 《白酒酿造工艺学》课件
- 联合体招投标协议
- IT企业软件开发项目进度管理标准流程
评论
0/150
提交评论