ciscoucs环境下montecarlo算法的设计与实现(源码)

蒙特卡洛(Monte Carlo)方法是一种以概率论和统计学为理论基础的计算方法。它在核物理、医学等多个领域得到广泛的应用。毕设课题要求在UCS环境下设计使用蒙特卡洛方法的并行算法。介绍了Monte Carlo方法的基本原理和并行处理后,设计了计算常数π值和e值的Monte Carlo并行算法,并利用我校云计算平台Cisco UCS作为运行环境,分别采用OpenMp方法和多线程方法对上述计算两个常数的并行算法编程实现,并讨论了随机点数目与计算精度的关系,c++11随机数生成器所含的特性和使用规范等细节。实验结果表明,并行Monte carlo算法具有较高的加速比;从性能方面看,多线程方法优于OpenMp方法。关键词 蒙特卡洛方法,并行计算,e值,π值,Cisco UCS
目录
1 绪言 1
1.1 课题研究背景及意义 1
1.2 蒙特卡洛方法研究现状 1
1.3 并行程序设计研究现状 3
1.4 论文的内容 3
1.5 论文的结构 3
2 预备知识 3
2.1 并行程序处理的基本知识 4
2.2 Cisco UCS介绍 5
2.3 蒙特卡洛方法的基本思想 6
2.4 随机数发生器简介 8
3 π值的蒙特卡洛计算方法 9
3.1 计算原理及所采用的数据模型 9
3.2 算法设计 10
3.3 算法的程序实现 11
3.4 并行环境下求解π的性能及结果分析 15
3.5 小结 16
4 定积分的蒙特卡洛计算方法 17
4.1 计算原理及所采用的数据模型 17
4.2 算法设计 21
4.3 算法的程序实现 22
4.4 并行环境下求e的计算性能及结果分析 25
4.5 小结 26
结论 28
致谢 29
参考文献 30
1 绪言
1.1 课题研究背景及意义
为了计算π的近似值,1773年,法国G.L.L.Von进行了投针实验。这是应用随机方法的较早的例子。 *好棒文|www.hbsrm.com +Q: @351916072@ 
1945年S.M.乌拉姆和J.冯诺伊曼提出一种基于概率解决问题的新方法,该方法以摩纳哥著名的赌城Monte Carlo为名,以体现随机性。在科学研究的过程中,我们通常构造一个与系统特性相似的概率模型,并且进行随机测试以期进行离散和连续事件系统的仿真实验。电子数字计算机的发展为这类大规模随机实验提供了有效的工具,从而使得蒙特卡洛方法得到了广泛的应用[1]。
蒙特卡洛方法在自然科学研究中发挥着重要的作用。鉴于这种重要性,蒙特卡洛方法不仅广泛应用于核物理、统计物理、分子动力学等传统应用领域,而且在经济、人口统计学、医学等领域也得到了广泛的推广和发展。统计物理中的蒙特卡洛方法是通过随机抽样以及计算机模拟来研究平衡或非平衡热动力系统的模型[2]。蒙特卡洛抽样有两种:简单抽样法和重要性抽样法[2]。大都市区方法是最早的重要抽样方法。之后,对该方法进行了一系列改进,得到了Swenden Wang法和沃尔夫法等聚类算法。随着人们对蒙特卡洛方法的认识的进一步深化,出现了越来越多的新的、更有效的方法。
在解决偏理科的问题时,如今的蒙特卡洛方法与当初的验证方法有了很大的区别。与过去单调的随机验证相比,现在使用的蒙特卡洛方法增加了许多新的内容。并且随着计算机使用范围的日益扩大,蒙特卡洛方法越来越深入的渗透到各个学科中。近些年,计算物理、计算概率统计等交叉学科与蒙特卡洛方法密切相关。
这次毕设课题是对蒙特卡洛方法应用和实现。我们可以借助蒙特卡洛方法特有的三个优点:方法的误差与问题的维数无关、具有统计性质问题可以直接进行解决的特性和对于连续性的问题不必进行离散化处理的特点,实现对复杂问题的优化,从而复杂结果的最优解。结合并行编程方式,提高计算性能。
1.2 蒙特卡洛方法研究现状
计算机技术与蒙特卡洛方法相辅相成、相互成全。目前,蒙特卡洛技术在解决各种问题上的应用在国内外并不鲜见。与蒙特卡洛技术以及相关文献如同雨后春笋踊跃冒出[3]。据相关数据分析,截至目前共有上千篇SCI和EI文章发出,未发表的更是数不胜数,该技术像新生的婴孩一样蓬勃有力。
在上世纪八十年代,出现了一种独立的算法,这种算法由美国埃克森研究集团开发,并且这种算法被迅速的应用在各种金属化和物理模拟过程中,如重结晶、多晶材料晶粒长大、有序无序DOM和AIN过渡等[3]。这种方法便是以Monte Carlo方法为基础被提出的。
1983,针对晶粒生长的二维动力学模拟有学者提出了一个新的应用模型即Monte Carlo程序[3]。此后该程序方法应用于拓扑结构、局部动力学和研究晶粒长大的尺寸分布。
1992,乔林利用蒙特卡洛方法结合晶粒相互作用能,模拟了晶界能量最小值和点缺陷浓度驱动下的微结构演化[4]。仿真结果与实验值得到了很好地结合。
随着人们对蒙特卡罗方法的不断开发,这种方法在材料领域的地位变得举足轻重[5]。在上世纪九十年代初期,由Paulad为代表的一群人,想要使用Monte Carlo技术来模拟二位网络上的铁硅的正常晶粒长大和异常晶粒长大[5]。并且在随后的几年,他们采用改进过得Monte Carlo模型研究焊接热影响区晶界的钉扎,最终得到了晶粒尺寸、Monte Carlo模拟的时间步长与实际参数之间的关系[6]。
1995,Gao等人提出了焊接热影响区晶粒生长的3种模型,使Monte Carlo模拟可以应用于整个焊接过程。
在二十世纪末期,对于蒙特卡洛算法的研究还在不断的深入,而且蒙特卡洛算法也为研究热度如何影响晶粒成长的模拟研究做了大量的铺垫[7]。蒙特卡洛方法能在该领域大展手脚就是因为由SJahani等人发起的,利用晶界迁移的方法来模拟焊接热影响区的晶粒生长的实验,本次实验主要研究的对象便是0.5Mo—Cr-V,需要研究的就是它们在120欧姆距离熔合线中晶粒生长的动力学和晶粒结构[8]。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/959.html

好棒文