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

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

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

深圳大学

实验报告

课程名称:并行计算

实验名称:矩阵乘法的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中所有元素之各定义为longlong型。

Windows计时:

用time.h中的clock_tclock(void)函数得到当前程序执行的时间

Linux计时:

#includesys/time.h

图2不同节点数下程序的加速比

图3不同节点数下程序的效率

执行时间的分析:

随着节点数的增加,程序的执行时间减少,大概可以从结果中得出,随着节点书的增加一倍,执行时间减少一半

加速比的分析:

随着节点数的增加,程序的加速比增加,大概可以从结果中得出,随着节点书的增加一倍,加速相应的增加接近一倍

效率的分析:

随着节点数的增加,程序的效率逐渐减少

3.分析矩阵相乘程序的问题规模与效率的关系:固定节点数为4,让方阵阶从200到1600之间变化,每隔100取一个值。(为了减少时间,每项实验可只执行1次)

答:

表2相同节点数下不同问题规模程序的执行时间与效率

方阵阶数

并行执

行时间

串行执

行时间

效率

200

0.015

0.047

0.783333

300

0.016

0.109

1.703125

400

0.063

0.297

1.178571

500

0.156

0.657

1.052885

600

0.406

1.64

1.009852

700

0.907

3.578

0.986218

800

1.609

6.36

0.988191

900

2.578

10.109

0.980314

1000

3.812

14.891

0.976587

1100

5.39

21.032

0.97551

1200

7.344

28.734

0.978145

1300

9.688

37.937

0.978969

1400

12.422

48.64

0.978908

1500

15.656

60.938

0.973077

1600

19.234

74.829

0.972614

图3.1不同问题规模下程序的效率

问题规模与效率的关系分析:

随着问题规模的增加,程序的效率趋于稳定,但是略微有点下降。

文档评论(0)

songyj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档