




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二 :OpenMP多线程编程模块一:基础练习3 编译执行,执行结果:简答与思考:1 写出关键的并行代码(1)四个线程各自执行6次迭代。#include stdafx.h#include int _tmain(int argc, _TCHAR* argv)printf(Hello World n);#pragma omp parallelfor(int i=0; i6; i+)printf(Iter:%d Thread%dn ,i,omp_get_thread_num();printf(GoodBye Worldn);return 0;(2)四个线程协同完成6次迭代。#include stdafx.h#include int _tmain(int argc, _TCHAR* argv)printf(Hello World n);#pragma omp parallel#pragma omp forfor(int i=0; i6; i+)printf(Iter:%d Thread%dn ,i,omp_get_thread_num();printf(GoodBye Worldn);return 0;2 附加练习:(1)编译执行下面的代码,写出两种可能的执行结果。int i=0,j = 0;#pragma omp parallel for for ( i= 2; i 7; i+ ) for ( j= 3; j 5; j+ ) printf(“i = %d, j = %dn”, i, j); (2)编译执行下面的代码,写出两种可能的执行结果。 int i=0,j = 0;for ( i= 2; i 7; i+ ) #pragma omp parallel for for ( j= 3; j 5; j+ ) printf(“i = %d, j = %dn”, i, j);(3)分析上述两段代码的不同并行效果。代码1,” #pragma omp parallel for”为并行区域只对外层循环起作用,因此外层循环 i 值出现的比较随机。而” #pragma omp parallel for”对内层的循环不起作用,执行方式仍然是串行方式,于是内层循环的出现还是固定的 先3 后4。代码2” #pragma omp parallel for”只对内层循环起作用,对外层循环不起作用,因此外层循环是串行方式执行的,内层循环是多个线程共同并发执行的。因此i 值的出现是随机的,j值的出现是有序的。3 实验总结。模块二:数值积分计算Pi值3 编译执行,计算执行时间:为:6 编译执行,计算执行时间为: 5.553000s和11.700000s 7 加速比(写出计算公式): 11.700/5.553 2.107 8 并行效率(写出计算公式): (11.700/5.553) /4 52.674% 简答与思考:1 如何进行并行化的?为什么? #include stdafx.h#include #include #include long long num_steps = 1000000000;double step;int _tmain(int argc, _TCHAR* argv)clock_t start, stop;double x, pi, sum=0.0;int i;step = 1./(double)num_steps;start = clock();#pragma omp parallel for reduction(+:sum), private(x)for (i=0; inum_steps; i+)x = (i + .5)*step;sum = sum + 4.0/(1.+ x*x);pi = sum*step;stop = clock();printf(The value of PI is %15.12fn,pi);printf(The time to calculate PI was %f secondsn,(double)(stop - start)/1000.0);return 0;2 是否可以对该并行化方案进行进一步的优化?如何优化?效果如何?3 是否有其他并行化方案?如何并行?效果如何?4 实验总结模块三:Monte Carlo计算Pi值2 编译执行, Pi的值为:计算执行时间为:5 编译执行,Pi的值为:计算执行时间为: 6 加速比(写出计算公式): 4.5310/2.2900 1.9786 7 并行效率(写出计算公式): (4.5310/2.2900)/4 49.47 简答与思考:1 如何进行并行化的?为什么?#include stdafx.h/VSL Variables#include mkl_vsl.h#define BRNG VSL_BRNG_MCG31#define METHOD 0#define BLOCK_SIZE 500int _tmain(int argc, _TCHAR* argv)unsigned int iter=200000000; double x;double y;double dUnderCurve=0.0;double pi=0.0;/you need a private copy of whole array for each threadVSLStreamStatePtr stream; /You need one stream for each threaddouble end_time,start_time;start_time=clock();#pragma omp parallel private(x, y, stream) reduction(+: dUnderCurve)double rBLOCK_SIZE*2;/Careful!vslNewStream(&stream,BRNG,(int)clock();#pragma omp forfor(int j=0; jiter/BLOCK_SIZE;j+) vdRngUniform( METHOD, stream, BLOCK_SIZE*2, r, 0.0, 1.0 );/Create random numbers into array rfor (int i=0;iBLOCK_SIZE;i+)x=ri; /X Coordinate y=ri+BLOCK_SIZE; /Y Coordinate if (x*x + y*y = 1.0) /is distance from Origin under Curve dUnderCurve+; vslDeleteStream(&stream);pi = dUnderCurve / (double) iter * 4 ;end_time=clock();printf (pi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025下半年四川绵阳安州区考核招聘教师9人备考考试题库附答案解析
- 2025上海宋庆龄幼儿园工作人员招聘1人备考考试题库附答案解析
- 2025下半年陕西咸阳市事业单位招聘209人备考考试题库附答案解析
- 2025广东深圳市退役军人事务局招聘1人备考考试题库附答案解析
- 2025云南玉溪市红塔区发展和改革局城镇公益性岗位招聘1人备考考试题库附答案解析
- 2025版痔疮病情详解及护理方法分享
- 中学组织教育活动实施纲要
- 财税咨询方案写作范文
- 建筑方案设计中标公司名单
- 山东八年级第一学期物理第一次月考9月份考试试题以及答案(适合沪科版)
- 2025至2030中国聚烯烃行业项目调研及市场前景预测评估报告
- 2025四川达州宣汉县国有资产管理服务中心县属国有企业招聘劳动合同职工26人笔试历年参考题库附带答案详解
- 2025年下半年杭州市上城区丁兰街道办事处招聘编外工作人员11人考试参考题库及答案解析
- 2025年合肥市广播电视台(文广集团)招聘12人考试参考题库及答案解析
- 2025年大队委竞选面试题库及答案
- 2025年信用管理专业题库- 信用管理对企业市场风险的控制
- 6.2 用7~9的乘法口诀求商(课件)数学青岛版二年级上册(新教材)
- 普通饮片车间共线生产风险评估报告
- 新教科版小学1-6年级科学需做实验目录
- GB/T 8492-2024一般用途耐热钢及合金铸件
- 读懂诗家语省公开课金奖全国赛课一等奖微课获奖课件
评论
0/150
提交评论