基于openMP的并行计算实验
更新时间:2023-10-31 03:52:01 阅读量: 综合文库 文档下载
并行计算实验报告
课程:并行计算 姓名:郑波
学号:2013211644
班级:计算机科学与技术13-2班 日期:2015年12月7日
实验一:OpenMP基本使用
一、实验目的
1、熟悉OpenMP编程。
2、比较串行算法与并行算法在执行时间上的差别; 3、考察线程数目使用不同对并行算法执行时间的影响; 4、考察运算规模N对串、并行算法执行时间上的影响。
二、实验内容
1、使用OpenMP进行两个矩阵A和B的加法,并分析串行、并行时间的差别以及问题规模对程序运行时间的影响
三、实验步骤
1、整个程序的设计流程 ①全局变量设置三个宏定义过的size×size的二维数组啊a,b,c。 ②初始化a数组为全1,b数组为全2 ③通过omp_set_num_threads()库函数设置线程数 ④调用openMP库函数omp_get_wtime()获取当前时间start #pragma omp parallel for开始做并行区部分 …
结束后再次调用omp_get_wtime()获取时间end,end-start即为并行消耗时间 ⑤再次调用时间函数更新strat 串行做一边矩阵相加 更新end,end-start即为串行耗时 代码如下: #include
#include
b[size][size], c[size][size];
int main() {
for(int i=0;i!=size;++i) //initial the matrix
for(int j=0;j!=size;++j){ a[i][j]=1; b[i][j]=2; } double start=omp_get_wtime(); omp_set_num_threads(4);
#pragma omp parallel for
for(int i=0;i cout<<\并行运行时间:\start=omp_get_wtime(); for(int i=0;i cout<<\串行运行时间:\system(\} 2、问题规模对串、并行程序时间的影响(A、B矩阵的大小为N*M) (1)通过不断增加问题规模,观察串行和并行程序的执行时间,得到如下表格的时间消耗数据: 100*100 1000*1000 10000*10000 串行消耗(ms) 并行消耗(ms) 0.03 7.06 4.36 9.54 296.91 182.27 (2)可以发现,当矩阵规模较小时,串行算法仍然要比并行算法运行的快,当规模 到达一定程度的时候,并行运行的速度较串行有了提升。 并行算法对各个CPU的调度也占用一定的时间,当问题规模很小的时候,这个调度时间占了很大的比重,而在规模较大的时候,这个调度时间就显得微乎其微了 3、线程数目对并行程序的影响(这里假设问题规模为:N*M=10000*10000) (1)在使用OpenMP进行并行执行矩阵加法时,我们可以自由设置进行并行计算的并行线程数目。 (2)在并行区域中,通过函数int omp_set_num_threads(int)设置并行区域中要创建的线程数,分别设置为2、4、8、16,得到如下表格的时间消耗 2 4 8 16 并行消耗(ms) 262.73 205.12 248.97 295.38 (3)观察发现,在问题规模不变的前提下,随着线程数目的增加,问题解决的时间也在相应的减少。但是,问题消耗的时间并不会随着线程数目的增加而不断的减少,原因可能是因为,随着线程数目的增减,线程的额外准备时间开销也将扩大。 四、心得体会 通过本次实验,了解了openMP库函数,掌握了openMP最基本的多线程程序编写。通过分析比较串并行运行时间,体会了不同规模下串并行的使用效果。 实验二:使用OpenMP实现圆周率计算的并行算法 一、 实验目的 1、 考察问题规模N对圆周率计算精确度的影响; 2、 考察线程数目对圆周率计算执行时间的影响; 3、比较串、并行算法在执行时间上的差别。 二、实验内容 1、使用OpenMP和近似计算公式计算圆周率π的大小,并分析串行、并行时间的差别以及问题规模对程序运行时间的影响 三、实验步骤 1、整个程序的设计流程 ①全局变量设置宏size,用来描述计算范围 ②利用如下公式准备计算圆周率π的近似值 ③通过omp_set_num_threads()库函数设置线程数 ④调用openMP库函数omp_get_wtime()获取当前时间start #pragma omp parallel for reduction(+:sum) 开始做并行区部分 注意: 其中sum是共享的,因为是个连续和的问题,采用reduction之后,每个线程根据reduction(+: sum)的声明算出自己的sum,然后再将每个线程的sum加起来。避免各个线程共享sum资源时出现问题 … 结束后再次调用omp_get_wtime()获取时间end,end-start即为并行消耗时间 ⑤再次调用时间函数更新strat 串行做一边矩阵相加 更新end,end-start即为串行耗时 代码如下: #include #define size 10000000 using namespace std; int main() { double sum=0,start,end; omp_set_num_threads(4); } start=omp_get_wtime(); for(int i=0;i end=omp_get_wtime(); cout<<\并行时间:\< start=omp_get_wtime(); for(int i=0;i end=omp_get_wtime(); cout<<\串行时间:\< sum+=4/(1+((0.5+i)/size)*((0.5+i)/size))*1/size; sum+=4/(1+((0.5+i)/size)*((0.5+i)/size))*1/size; #pragma omp parallel for reduction(+:sum) 2、问题规模对串、并行程序时间的影响(N的大小影响时间) (1)通过不断增加问题规模,观察串行和并行程序的执行时间,得到如下表格的时间消耗数据: 1000 100000 10000000 串行消耗(ms) 并行消耗(ms) 0.04 4.60 4.10 15.04 365.70 188.48 (2)可以发现,当规模较小时,串行算法仍然要比并行算法运行的快,当规模到达 一定程度的时候,并行运行的速度较串行有了提升。 并行算法对各个CPU的调度也占用一定的时间,当问题规模很小的时候,这个调度时间占了很大的比重,而在规模较大的时候,这个调度时间就显得微乎其微了 3、线程数目对并行程序的影响(这里假设问题规模为:N=100000) (1)在使用OpenMP进行并行执行运算时,我们可以自由设置进行并行计算的并行线程数目。 (2)在并行区域中,通过函数int omp_set_num_threads(int)设置并行区域中要创建的线程数,分别设置为2、4、8、16,得到如下表格的时间消耗 2 4 8 16 并行消耗(ms) 3.26 3.23 3.14 30.9 (3)观察发现,在问题规模不变的前提下,随着线程数目的增加,问题解决的时间也在相应的减少。但是,问题消耗的时间并不会随着线程数目的增加而不断的减少,原因可能是因为,随着线程数目的增减,线程的额外准备时间开销也将扩大。 四、心得体会 通过本次实验,进一步深入了openMP的编程,对openMP各线程共享资源、各自拥有自己的资源有了初步认识。再一次体会到了并行计算给大规模计算带来的便利性。
正在阅读:
基于openMP的并行计算实验10-31
蒲公英的梦作文500字06-22
Linux复习题05-03
Unit Five Some American Types(Max Lerner)04-06
精选2022-2022年牛津上海版英语六年级上册Module 3 Food and dri04-16
浅析运动训练专业户外运动专修课程教学质量的影响因素12-18
2019-2020学年度新版-牛津上海版小学英语一年级上册Unit 8 Apple03-28
中央电大开放本科会计学专业国民经济核算试题_030705-20
假如我变成了蛛蛛侠作文500字07-05
《数据库应用基础与实训教程——Visual FoxPro》第7章:Visual FoxPro6.0程序设计基础08-31
- 天大砼方案 - 图文
- 农业科技网络书屋能力提升_玉米错题选
- DNS习题
- 浅议检察官对罪犯谈话的技巧与效果
- 高考语文文言文翻译专题训练
- AB类学科竞赛目录(2015)
- 建筑面积计算新规定(2015最新)
- Revit2012初级工程师题集一
- 十三五项目米线可行性报告
- 2013体育学院党组织建设工作总结
- 2014Revit工程师题库
- 高中数学如何实施研究性学习
- 茶艺表演 中英互译
- 小学音乐湘文艺版 四年级下册 第十一课《(歌表演)脚印》优质课公
- 山西省农村合作经济承包合同管理条例
- 2015年镇江市中考化学一模试题参考答案及评分标准(定稿)
- 统计 题集
- 批评意见清单
- 8潞安集团蒲县黑龙关煤矿矿业公司2
- 鄂教版四年级语文上册复习精要(光谷四小)
- 并行
- 基于
- 实验
- 计算
- openMP
- 9E燃机的IGV控制及常见故障分析
- 全新版大学英语2(第二版) UNIT5 语言点
- 余杭区第39届中小学生田径运动会竞赛规程
- 2015年单独招生考试《综合素质与能力》试题样卷含答案(1)
- 北京课改版八年级(下) 中考题同步试卷:16.3 平行四边形的性质与判定(02)
- 陈涉世家对比阅读(含答案)
- 郑州市城市房屋租赁管理办法
- 《学前卫生学》试卷及答案(A)crb
- 8下培优第一周
- 450吨提梁机操作规程
- 远航雅思中级写作第三期 Lesson 2
- 班长发言稿
- 春季班 初一 第10讲 人教版 期中复习二 教师版 - 图文
- 国家七部委实施学生奶计划通知
- 应知应会题库
- 锅炉课设.doc -
- 2015中级会计职称经济法答疑精选(四)
- 2016锦成网
- 企业财务管理试题及答案
- 公司工会工作汇报