openmp矩阵乘法

目录

1. 实验内容与方法

2. 实验过程

2.1 运行时间

2.2 加速比

2.3 图表

3. 实验分析

4. 源代码


1. 实验内容与方法

  1. 初始化数组。初始化三个double矩阵matrix_a,matrix_b和result,矩阵的行和列可以根据数据量大小自行调整。数组中的值使用c++11中的random类随机生成0到1之间的double值。
  2. 程序计时。使用c++11中的std::chrono库,使用system_clock表示当前的系统时钟,系统中运行的所有进程使用now()得到的时间是一致的。
  3. 串行执行数组相乘。遍历两个矩阵,使用矩阵乘法,将存储的结果放到
  4. 并行执行数组相乘。使用openmp将for循环设置为多线程,线程数根据实验内容进行调整。
  5. 线程数不变,修改矩阵大小。从6000 * 6000修改为8000 * 6000和8000 * 8000,统计运行时间。
  6. 矩阵大小不变,修改线程数。分别设置线程数为2、4、8个,统计运行时间。

2. 实验过程

       实验设备CPU(i7-7700  3.6GHz, 8核),内存16G,操作系统Ubuntu 18.04,IDE CLion。

2.1 运行时间

分别控制矩阵大小和并行线程数进行实验。经过长时间的代码运行计时,得到以下的实验结果表格。

运行时间/秒

6000 * 6000

8000 * 6000

8000 * 8000

串行执行

1222.05

2603.9

3835.77

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值