多核多线程技术OpenMP-实验报告2.docx
《多核多线程技术OpenMP-实验报告2.docx》由会员分享,可在线阅读,更多相关《多核多线程技术OpenMP-实验报告2.docx(6页珍藏版)》请在第壹文秘上搜索。
1、实验二:QRenMP多线程编程模块一:根底练习3编译执行,执行结果:简答与思考:1写出关键的并行代码(1)四个线程各自执行6次迭代。#indudestdafx.h#includeint.tmain(intargcf_TCHAR*argv)Printf(HelloWorldn);#pragmaompparallelfor(inti=0;i6;i+)printf(nIter%dThread%dnlomp_get_thread_numO);Printf(GoodByeWorldn);returnO;(2)四个线程协同完成6次迭代。#indudestdafx.h#includeint.tmain(in
2、targcf_TCHAR*argv)Printf(HelloWorldn);#pragmaompparallel#pragmaompforfor(inti=0;i6;i+)printf(Iter:%dThread%dn,i,omp_get一thread_numO);Printf(GoodByeWorldn);returnO;2附加练习:(1)编译执行下面的代码,写出两种可能的执行结果。iti=OJ二0;#Pragmaompparallelforfor(i=2;i7;i+)for(j-3;j5;j+)Printfri=%d,j=%dn,i,j);可能的结果:1种2种i=2,j=3i=2,j=3i
3、=2,厘i=2,ji=3sj=3i=3,j=3i=3sRi=3,Ii=6sj=3i=5,j=3i=6,厘i=5,ji=4,j=3i=5,j=3i=4,Ri=5?Ii=5sj=3i=6,j=3i=5,厘i=6,j(2)编译执行下面的代码,写出两种可能的执行结果。inti=0,j=0;for(i=2;i7;i+)#pragmaompparallelforfor(j=3;jv5;j+)Printfri=%d,j=%dn,i,j);可能的结果:1种2种i=2,j=3i=3j=3i=2,j=4i=2,曰i=3,j=3i=3,曰i=3,jEi=3,尸3i=4,j=3i=4,j=3i=4,j=4i=4,j=
4、4i=5,j=3i=5,j=4i=5,j=4i=5,j=3i=6,j=3i=6,j=3MjEi=6,j=4(3)分析上述两段代码的不同并行效果。1).代码,#pragmaompparallelfor*为并行区域只对外层循环起作用,因此外层循环/值出现的比拟随机。而#PragmaOmPparaIIelfor*对内层的循环不起作用,执行方式仍然是串行方式,于是内层循环的出现还是固定的先3后4。2).代码#Pragmaompparallelfor*只对内层循环起作用,对外层循环不起作用,因此外层循环是串行方式执行的,内层循环是多个线程共同并发执行的。因此/值的出现是随机的,J值的出现是有序的.3实验
5、总结。对于嵌套循环的,并行的结果只与并行化作用的循环有关,在每一个并行执行线程的内部,程序是继续按照顺序执行的。模块二:数值积分计算Pi值3编译执行,计算执行时间为:11.2000OOS6编译执行,计算执行时间为:5.1920OoS7加速比(写出计算公式):11.200/5.1922.1578并行效率(写出计算公式):2.157/4*(100%)/54%简答与思考:1如何进行并行化的?为什么?for循环被多个线程协同执行,因此变量X为多个线程的共享变,需要被私有化;s也是多个线程的共享变,也需要被私有话,但是SMS由于功能和效率的需要,最终结果需要相加,因此用reduction(+:Sum),
6、reduction会为每个线程创立一个私有的st装的副本,最终结果相加并且返回到孔m关键代码:(黄色局部已标记)/OpenMPPi.cpp:定义控制台应用程序的入口点。#include*stdafx.h*ttincludeincludeIonglongnumsteps=I000000000;doublestep;intmain()clock_tstart,stop;doublex,pi,sum=0.0;inti;step=I./(doub1e)num_steps;start=clock();pragmaompparalIelforreduction(+:sum),private(x)for(i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多核 多线程 技术 OpenMP 实验 报告