网站大量收购闲置独家精品文档,联系QQ:2885784924

探索性实验基于MPI-OpenMP混合编程的大规模多体问题仿真.doc

探索性实验基于MPI-OpenMP混合编程的大规模多体问题仿真.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
探索性实验基于MPI-OpenMP混合编程的大规模多体问题仿真

实验名称: 基于MPI/OpenMP混合编程的大规模多体问题仿真 实验背景 随着国民经济、国防建设和高科技的快速发展,越来愈多的领域对高性能计算有强烈的需求,包括原子能、航空、航天、激光、气象、石油、海洋、天文、地震、生物、材料、医药、化工等。特别是全球气候变化和天气预报、生物分子结构探索、湍流研究、新材料探索以及不少国防研究课题,都迫切需要高性能计算。高性能计算课程的目标就是培养从事高性能计算方面的实践创新型人才,课堂上的理论知识能让学生对高性能计算的各种技术有所了解,但要深入理解高性能计算,需要结合当前科学前沿,动手去实验,去了解高性能计算能够解决的问题、高性能计算的集群环境、高性能计算的编程技术以及高性能计算算法的设计。 本实验主要是对“基于MPI/OpenMP混合编程的大规模多体问题仿真实验”进行探索和研究,并为高性能计算课程制定探索创新性的实验内容。N-Body问题(多体问题)是天体力学和一般力学的基本问题之一,研究N个质点相互之间作用的运动规律,它切合当前科学前沿,在高性能计算领域也具有一定的代表性。MPI/OpenMP是一种分布式/共享内存层次结构,是高性能计算中两种常用并行结构的混合体,它提供结点内和结点间的两级并行,能充分利用共享存储模型和消息传递模型的优点,有效地改善系统的性能,这种编程模型能够综合地培养学生的高性能计算法方面的编程能力。基于这个基础,要求学生设计解决N-body的算法,比如PP(Particle-Particle)、PM(Partical-Mesh)、BH(Barnes-Hut)、FMM(Fast Multipole Method)等,以及基于这些算法延伸出来的算法。在实验室集群上面完成OpenMP/MPI程序,并分析使用高性能计算解决问题达到的效率,这些能够培养学生高性能计算算法设计能力及在高性能计算环境的实践能力。另外,在实验的过程中,指导学生考虑高性能计算编程中常涉及的程序可扩展性问题及负载均衡问题,培养学生精益求精的科研精神。 整个实验贴合科学前沿,能指导学生全面深入理解高性能计算,并能充分培养学生在高性能计算方面的思考、创新及实践能力。 实验主要完成对于“基于MPI/OpenMP混合编程的大规模多体问题仿真实验”的探索和研究,并完成高性能计算课程的实验内容设计。MPI是集群计算中广为流行的编程平台。但是在很多情况下,采用纯的MPI消息传递编程模式并不能在这种多处理器构成的集群上取得理想的性能。为了结合分布式内存结构和共享式内存结构两者的优势,人们提出了分布式/共享内存层次结构,MPI/OpenMP混合编程模型就是其中的一种。N-Body问题又称为多体问题,N表示任意正整数。它是天体力学和一般力学的基本问题之一,研究N个质点相互之间作用的运动规律,对其中每个质点的质量和初始位置、初始速度都不加任何限制。简单的说,N-Body问题是指找出已知初始位置、速度和质量的多个物体在经典力学情况下的后续运动,它既可以应用于宏观的天体,也可以应用于微观的分子、原子。 实验问题的创新 N-Body问题是一个经典的高性能计算应用, 广泛应用于天体物理、等离子体物理、分子动力学、流体动力学,它贴合科学前沿,并在高性能计算领域具有非常强的代表性。 实验编程模型的创新 使用MPI/OpenMP混合编程模型有许多的好处 (1)有效的改善MPI代码可扩展性 MPI代码不易进行扩展的一个重要原因就是负载均衡。它的一些不规则的应用都会存在负载不均的问题。采用混合编程模式,能够实现更好的并行粒度。MPI仅仅负责结点间的通信,实行粗粒度并行:OpenMP实现结点内部的并行,因为OpenMP不存在负载均衡问题,从而提高了性能。 (2)数据拷贝问题 数据拷贝常常受到内存的限制,而且由于全局通信其可扩展性也较差。在纯的MPI应用中,每个结点的内存被分成处理器个数大小。而混合模型可以对整个结点的内存进行处理,可以实现更加理想的问题域。 (3)MPI实现的不易扩展 在某些情况下,MPI应用实现的性能并不随处理器数量的增加而提高,而是有一个最优值。这个时候,使用混合编程模式会比较有益,因为可以用OpenMP线程来替代进程这样就可以减少所需进程数量,从而运行理想数目的MPI进程,再用OpenMP进一步分解任务,使得所有处理器高效运行。 (4)带宽和延迟限制问题 减少结点间的消息但是却增加了消息的长度。在简单的通信中,比如,在某时仅允许一个结点发送/接收一条消息,消息带宽是没有影响的,整个延时会降低因为此时消息的数量少了。在更复杂的情况下,允许消息并发的发送/接收,长消息数量的减少会产生不良影响。 (5)通信与计算的重叠 大多数MPI实现如:MPICH和LAM,都是使用单线程实现。这种单线程的实现可以避免同步和上下文转换的

文档评论(0)

tiangou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档