多核并行编程多核并行编程实验报告

多核并行编程多核并行编程实验报告

ID:33015327

大小:94.34 KB

页数:8页

时间:2019-02-19

多核并行编程多核并行编程实验报告_第1页
多核并行编程多核并行编程实验报告_第2页
多核并行编程多核并行编程实验报告_第3页
多核并行编程多核并行编程实验报告_第4页
多核并行编程多核并行编程实验报告_第5页
资源描述:

《多核并行编程多核并行编程实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、多核并行编程多核并行编程实验报告导读:就爱阅读网友为您分享以下“多核并行编程实验报告”的资讯,希望对您有所帮助,感谢您对92to.com的支持!块数1000000块数100000005块数10000000块数为10000000062.WinAPI多线程编程代码#include#include#include#include#includeusingnamespacestd;staticlongnum_step;constintThreadnum=10;〃修改此处线程数为1,4,8doublestep,pi=0,sum=0・0;CRITICAL.SECT

2、IONg;DWORDWINAPIthreadFunc(LPVOIDpParam){}voidmain(){cout>num_step;LARGE.INTEGERtemp;doubledFreq;〃系统时钟QueryPerformanceFrequency(&temp);dFreq=(double)temp.QuadPart;//获得计数器的时刻LONGLONGStart,End;QueryPerformanceCounter(&temp);Start=temp.QuadPart;//获得计数器的初始值HANDLEhthread[Threadnum];I

3、nitializeCriticalSection(&g);intnum=*((int*)pParam);doublex,suml=0;step=1.0/(double)num_step;for(inti=num;i多核并行编程实验报告一、实验目的使用三种编程方法实现积分法或蒙特卡洛法1=1计算pi值(选择实现其中一种,建议蒙特卡洛法)?串行方法?Windows环境多线程编程?Windows环境OpenMP库并行编程二、实验原理?积分法计算pi值的基本原理因此可以用上述公式来计算7T的值。?蒙特卡罗法计算Pi值的基本原理?蒙特卡洛算法可理解为通过大量实验

4、,模拟实际行为,来收集统计数据。本例中,算法随机产生一系列点,模拟这些点落在如下图所示的正方形区域内的情况。其几何解释如下?如图所示,正方形边长为1,左下顶点与原点重合,两边分别与x轴重合。曲线为1/4圆弧,圆心位于原点,与正方形左下定点重合,半径为lo正方形面积Sl=l,圆弧内面积S2=?/4o算法模拟大量点随机落在此正方形区域内,落在圆弧内的点的数量(n2)与点的总数(nl)的比例与面积成正比关系。即?1卵蛹幼虫三、实验F?系统硬件环境:通过CPU-Z获取本机CPU型号,二级cache容量,处理器内核数和逻辑线程数等信息?操作系统:winxp32位

5、(学校机房电脑)?开发工具:Visualstudio2010四、实验任务和步骤系统硬件环境23积分法1.传统单线程代码#include#include#include#includestaticlongnum_steps=1000000000;〃块数可以修改doublestep;usingnamespacestd;intmain(intargc,char*argv[]){doublex,pi9starttime,endtime9sum=0.0;1.0/(double)num_steps;starttime=clock();srand((unsigned

6、)time(&t));for10固定线程数为4,改变分块数块数10000块数10000011块数1000000块数1000000012块数1000000003.OpenMP编程代码#include#include#include#includelongnum_steps;#defineNUM_THREADS2〃线程数分别设Vi置为2、4、6.8、10、12、14、16CRITICALSECTIONg;usingnamespacestd;intmain()cout>num_steps;LARGE_INTEGERtemp;13inti;doubledFre

7、q;〃系统时钟QueryPerformanceFrequency(&temp);dFreq=(double)temp.QuadPart;//获得计数器的时刻Start,End;LONGLONGQueryPerformanceCounter(&temp);Start=temp.QuadPart;//获得计数器的初始值HANDLEhthread[NUM_THREADS];InitializeCriticalSection(&g);doublex,sum=0,pi=0.0;doublestep=1.0/(double)num_steps;omp_set_nu

8、m_threads(NUM_THREADS);#pragmaompparallelforpri

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。