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

下载本文档

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

文档简介

深深 圳圳 大大 学学 实实 验验 报报 告告 课程名称课程名称 并行计算并行计算 实验名称 矩阵乘法的实验名称 矩阵乘法的 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 的初始值如下 12 2 1 2 5 4 3 1 4 3 2 3 2 1 nnnn n n n a 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 b 输入 方阵的阶 n 并行域的线程数 输出 c 中所有元素之和 程序的执行时间 提示 a b c 的元素定义为 int 型 c 中所有元素之各定义为 long long 型 Windows 计时 用中的 clock t clock void 函数得到当前程序执行的时间 Linux 计时 include timeval start end gettimeofday gettimeofday cout execution time end tv sec start tv sec double end tv usec start tv usec 1000000 seconds endl 答 在 windows 下使用 Microsofe Visual Studio 编程 源代码如下 include include include define NN 2000 int a NN NN b NN NN long long c NN NN 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 a i j t b i j 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 c i j 0 for k 0 k n k c i j a i k b k j for i 0 i n i for j 0 j n j sum c i j endTime clock time endTime startTime printf sum lld time dms n sum time int main int n num thread while scanf d d 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 783333 3000 0160 1091 703125 4000 0630 2971 178571 5000 1560 6571 052885 6000 4061 641 009852 7000 9073 5780 986218 8001 6096 360 988191 9002 57810 1090 980314 10003 81214 8910 976587 11005 3921 0320 97551 12007 34428 7340 978145 13009 68837 9370 978969 1

温馨提示

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

最新文档

评论

0/150

提交评论