并行计算-实验二-矩阵乘法的OpenMP实现及性能分析_第1页
并行计算-实验二-矩阵乘法的OpenMP实现及性能分析_第2页
并行计算-实验二-矩阵乘法的OpenMP实现及性能分析_第3页
并行计算-实验二-矩阵乘法的OpenMP实现及性能分析_第4页
并行计算-实验二-矩阵乘法的OpenMP实现及性能分析_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、并行计算-实验二-矩阵乘法的OpenM速现及性能分析深圳大学实 验 报 告课程名称:并行计算实验名称:矩阵乘法的 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 .用Op

2、enMP编写两个n阶的方阵a和b的相 乘程序,结果存放在方阵c中,其中乘法用for 编译制导语句实现并行化操作,并调节 for编译 制导中schedule的参数,使得执行时间最短,写 出代码。方阵a和b的初始值如下:1,2,3,,n1,1,1,,12,3,4,,n11,1,1,,13,4,5,,n21,1,1,,1ab.n, n 1,n2,2n 11,1,1,.,1 输入:方阵的阶n、并行域的线程数输出:c中所有元素之和、程序的执行时间提示:a,b,c的元素定义为int型,c中所有元素之 各定义为long long型。Windows 计时:用<time.h> 中的 clock_t

3、clock( void )函数得 到当前程序执行的时间Linux计时:#include <sys/time.h>timeval start,end;gettimeofday(&start,NULL); gettimeofday(&end,NULL); cout<<"executiontime:"<<(end.tv_sec-start.tv_sec)+(double)(end.tv_u sec-start.tv_usec)/ 1000000<<"seconds" <<endl;答:

4、在 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

5、<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;en

6、dTime=clock();time=endTime-startTime;printf("sum=%11d 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加速比=顺序执行时间/并行执行时间 效率=加速比/节点数表1不同节点数下程序的执行时间(秒)12481632点数实果第 16.640 8.172 4.078 2.1251次第 16.422 8.156 4.172 2.1412次第 16.406 8.266 4.078 2.1251.093 0.5941.078 0.5781.094 0.5633次第 16.781 8.172 4.079 2.109 1.094 0.5634次第 16.422 8.171 4.078 2.125 1.093 0.5785次平 16.5348.1874.0972.1251.0900.5

8、75均 240042值图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.42

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论