典型隐式CFD求解方法的众核并行计算

来源 :国防科学技术大学 | 被引量 : 0次 | 上传用户:yuxi123450
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
计算流体力学(Computational Fluid Dynamics,CFD)作为一种强有力的计算分析工具,已经广泛应用到航空、航天、气象、船舶、武器装备等领域。随着其向高精度、大规模、高时效方向发展,对计算与存储量的需求日益增加,开展高效大规模并行计算成为必然趋势。近年来,随着众核技术的不断发展,异构众核体系结构逐渐成为高端超级计算机系统的主流架构。与传统同构并行计算机系统相比,异构众核体系结构兼顾了通用性和能效比,为大规模科学和工程计算提供了很好的机遇。同时,异构众核体系结构的复杂硬件结构和编程环境也给包括CFD在内的领域应用开发带来了诸多现实的困难和挑战。本文以一个有限体积的CFD实际应用为背景,在图形处理器(Graphics Processing Unit,GPU)和英特尔集成众核(Many Integrated Core,MIC)两种主流众核处理器架构上开展了典型隐式CFD求解方法的并行算法和优化方法研究。主要工作包括:(1)详细介绍了两种主流众核处理器架构特点和编程环境,总结了各自的性能优化方法,从硬件和软件两个方面对比分析了两者的异同,并根据自身的经验,给出了两种架构编程和优化的学习曲线。(2)对ADI、JACOBI等隐式CFD求解方法基本原理、CFD计算流程、计算数据依赖关系等进行了深入分析,结合GPU众核体系结构和并行编程模型特点,提出了基于网格点并行和基于网格线并行的GPU并行算法;对实际CFD应用场景下的ADI和JACOBI方法进行了GPU并行算法设计、实现与性能优化,并采用不同规模的结构网格真实算例进行了并行性能测试与分析。结果显示:在200万规模的单区结构网格上,ADI和JACOBI求解方法的GPU(NVIDIA Tesla M2050)并行分别取得了10.3倍和14.25倍的加速比(相对于Intel Xeon X5670单核);相对而言JACOBI迭代求解方法体现出了较好的GPU并行计算性能。(3)基于LIKWID性能分析工具,对MIC众核架构下LU-SGS、ADI、JACOBI的OpenMP并行性能进行了深入分析,提出了基于微体系架构硬件指标的优化方法,有助于深入理解众核架构下Cache、SIMD等对应用性能的影响。针对JACOBI方法,MIC性能优化在理想和真实场景下取得加速性能差异,借助性能分析工具—LIKWID,通过收集和分析程序执行中的硬件指标,对不同场景下这种加速性能差异进行了比较研究与合理性解释。测试结果表明:在单区200万网格规模下,JACOBI方法相对于CPU单核,取得17.54的加速比。
其他文献
自20世纪90年代以来,以Internet为代表的计算机网络技术突飞猛进。它被广泛用于经济、文化、军事、教育等社会生活的各个方面。随着这一技术的不断向前发展,计算机网络安全技术
本文在综合研究各种数据可视化方法和多种数据挖掘方法的特点以及多个数据挖掘系统的基础上,设计并搭建了可视化数据挖掘平台的系统框,并且从不同的角度实现了多个进行数据
传感器网络由于其独特的优点在军事和许多民用领域具有广泛的应用潜力,正得到越来越多的关注,对传感器网络各个方面的研究也成为目前学术界的研究热点。路由算法是传感器网络
在互联网上,借鉴网上的推荐或评价是普通用户了解未知事物的一个常用方法。但是,要借鉴其他用户的评价,前提是用户必须相信评价是可信的,因此用户就需要自己能够确定评价的作
信息技术的迅猛发展,对社区建设产生了全方位的影响。它不仅带来了技术手段的革命,同时也深刻地影响着社区的生活方式和管理方式。社区信息化是社会信息化的重要组成部分,如
伴随着Internet的普及,电子邮件作为一个主要的交流方式得到了更广泛的使用,但随之而来的垃圾邮件也越来越令人头痛。据统计每年美国因垃圾邮件受到的损失高达10亿美元,全球的损
随着自助服务行业的飞速发展,作为自助服务系统核心部件的货币识别接收器得到了广泛的应用。与此同时,如何快速、有效而又低成本地对大量的、分散的货币识别接收器进行升级与
本文分析了DMSO-RTI1.3NG的标准体系结构实现。进而从性能和实现的复杂性分析了现有的两种基于CORBA的RTI体系结构。并在此基础之上提出了一种基于CORBA的RTI平台体系结构。
当前,随着计算机网络和移动通信技术的发展,人们对普适计算的需求越来越高,越来越多的计算机用户希望自己的计算机也能象手机一样实现强大的漫游功能,方便的访问各种网络资源
现代计算机应用系统中,软件的地位日益重要和突出。在计算机应用领域的不断拓展和深入的过程中,对软件产品的数量、种类、功能、性能的需求在不断攀升。如何满足日益增长的软件