面向众核处理器的水动力学CFD并行计算探索_第1页
面向众核处理器的水动力学CFD并行计算探索_第2页
面向众核处理器的水动力学CFD并行计算探索_第3页
面向众核处理器的水动力学CFD并行计算探索_第4页
面向众核处理器的水动力学CFD并行计算探索_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向众核处理器的水动力学CFD并行计算探索摘 要异构众核已成为超级计算机架构的发展趋势,而如何有效利用众核处理器的计算能力,是当前CFD界的一项重 大挑战。该文面向异构众核处理器,基于自主开发代码,开展水动力学CFD并行计算探索研究。首先分析异构众核给CFD 并行计算带来的挑战;针对国产申威26010处理器,对SIMPLE算法和人工压缩算法设计众核并行方案,并通过二维方腔 驱动流算例,对计算结果和众核加速效果进行验证和测试;然后,针对SIMPLE算法热点分散的特点,采用循环融合的方 法对其计算流程进行优化。研究结果表明:SIMPLE算法和人工压缩算法分别获得11倍和24倍的最高加速。该项研究

2、工作,初步展现了众核处理器在水动力学CFD并行计算中的应用潜力。关键词众核处理器;并行计算;不可压流动;SIMPLE算法;人工压缩算法Multi-Core Processor Oriented Parallel Computation forCFD in HydrodynamicsAbstract: Heterogeneous multi-core technology has become the developing trend of the supercomputers architecture. The effective utilization of the computing po

3、wer of multi-core processor is a grand challenge in the current CFD industry. The parallel computation for the CFD in hydrodynamics has been explored for heterogeneous multi-core processor based on self-developed code. Firstly, the challenges of the heterogeneous multi-core technology to the CFD par

4、allel computation are analyzed. Secondly. The multi-core parallel computing scheme is designed for SIMPLE algorithm and pseudo-compressible algorithm for SIMPLE and the pseudo- compressible algorithms aiming at the SW26010 processor. The two-dimensional square cavity driven flow are calculated to ve

5、rify and validate the calculation results and the many-core acceleration effect. Then, the calculation procedure is optimized by using the cyclic fusion method in view of the scattered hot spots of SIMPLE algorithm. The results show that the SIMPLE algorithm and Pseudo-compressible algorithm can ach

6、ieve the maximum acceleration of 11 times and 24 times, respectively. It preliminarily presents the application potential of the multi-core processor in the parallel computation for the CFD in hydrodynamics.Keywords: multi-core processor; parallel computation; incompressible flow; SIMPLE algorithm;

7、pseudo- compressible algorithm重大技术挑战。高性能计算已深入诸多科学与工程应用领域 的数值模拟中,成为科技创新和提升核心竞争力的 重要手段和支撑。具体到船舶水动力学领域,随着 CFD计算量成几何量级增长,对计算能力的要求 越来越高,在超级计算机上开展大规模计算渐趋 普遍。近年来,超级计算机架构正在发生由同构向 异构发展的变革。由于“主频墙”的限制,单核 处理器计算性能趋于极限;由于“通信墙”的限 制,基于分布式的并行计算无法在大规模并行中 获得优秀的加速效果;由于“功耗墙”的限制, 通过大规模扩展通用处理器(CPU)提升计算能 力也不太现实。因此,异构众核逐渐成为

8、超级计 算机架构的发展趋势。以2020年6月22日发布 的超级计算机TOP500榜单为例,其中144台 都采用加速器或协处理器,也就是采用异构众核 架构;在榜单前10名中,8台采用异构众核架构; 而近十年来登顶的超级计算机,全部采用异构众 核架构。异构是相对于同构而言,因此先简单介绍一下 同构架构。同构架构中所有的计算核心都是由CPU 构成,所有计算核心的逻辑处理能力和数据计算能 力都很强,不受计算任务复杂度的影响;但其缺点 是成本高、功耗大。异构与同构相比,计算核心的 种类不同,一般既有CPU,也有协处理器。异构 系统可以进行深层次并行,使计算任务划分更加细 化,并行程度更高。典型的异构众核

9、处理器架构 包括CPU+GPU架构、CPU+MIC架构等,“神威太 湖之光”超级计算机的国产申威架构SW26010处 理器,也属于异构众核架构。异构众核架构使得超级计算机的计算能力大 幅度提升,但对CFD高性能计算也是挑战。因为 要实现对计算资源的充分利用,需要从数值算法、 数据结构、计算流程等各个层面进行重构和优化。 NASA的CFD Vision 2030 Study)报告也将其列为国内外不少研究人员针对CPU+GPU架构I*、 CPU+MIC架构,开展了 CFD众核并行计算研 究;也有少量基于开源软件针对国产申威架构的 CFD众核并行计算研究。总体看来,目前CFD 界远未实现对异构众核超

10、算能力的有效利用,有 以下原因:目前常用CFD软件的并行计算,大多数 是针对MPI并行设计的,一般不适合在异构众核 平台上运行。CFD计算通常具有全局相关性特点,并 行规模的增大带来了并行复杂度与通讯开销的增 加,导致并行效率下降;同时水动力学CFD常用 的SIMPLE算法的流程相对复杂,增加了细粒度并 行优化的难度,异构加速面临巨大挑战。CFD软件一般具有数据结构复杂、计算 流程复杂和代码量庞大等特点,从程序移植到优 化,都需要大量的重构工作,难度和工作量相当大。本文面向异构众核处理器,开展水动力学 CFD并行计算探索研究,为自主CFD求解器与 国产超级计算机硬件的有效结合进行关键技术攻 关

11、。针对国产申威26010异构众核处理器,对水 动力学CFD中典型的SIMPLE算法和人工压缩算 法,从数据存储、数据分配和数据结构等多个方 面入手,设计众核并行计算方法,通过典型算例 测试和验证众核加速效果,并针对SIMPLE算法 计算热点分散的特点,采用循环融合的方法对其 计算流程进行优化,使SIMPLE算法和人工压缩 算法分别获得11倍和24倍的最高加速。该项研 究工作,初步展现众核处理器在水动力学CFD并 行计算中的应用潜力,并将为自主CFD求解器与 国产超级计算机硬件的有效结合提供技术储备。1水动力学CFD计算方法水动力学CFD计算处理的通常为不可压缩粘 性流动,其无量纲化积分形式控制

12、方程组如下:(1)爵V-s(*)“dS=。式中:r为控制体体积;S为控制体表面积闩 为速度矢量,其分量形式表示为(u, v);Re = UL/v,U.通常选为无穷远处自由流速度。本文采用基于交错网格的有限体积法离散控 制方程。论文在求解控制方程组时,使用了两 种数值算法一SIMPLE算法和人工压缩算法19, 两种算法的求解流程参见图1。人工压缩SIMPLE图1 SIMPLE和人工压缩算法计算流程uQ = ux%=V1U = U% = V12 CFD模拟并行计算方案2.1国产申威众核处理器简介“神威太湖之光”超级计算机系统,采用的 是国产申威架构SW26010处理器。处理器本身就 包括控制核心和

13、计算核心阵列,相当于把CPU和 加速处理器集成到一个芯片上,其内部架构见下页 图2。SW26010处理器包含4个核组(CG),各核组 之间采用片上网络(NOC)互联,每个核组内包含 1个主控制核心(主核,MPE)、1个从核(CPE)I内存内存.内存控制器主核-从核阵列核组片上网络接口总线从核阵列内存图2 SW26010处理器架构示意图8x8集群(由64个从核组成)、1个协议处理单元 (PPU)和1个内存控制器(MC)。核组内采用 共享存储架构,内存与主/从核之间可通过MC I内存内存.内存控制器主核-从核阵列核组片上网络接口总线从核阵列内存图2 SW26010处理器架构示意图8x8与其他异构众

14、核架构一样,SW26010处理器 的计算能力主要体现在从核上;但相比于GPU和 MIC,从核上的存储空间和带宽较小,往往使数据 传输成为程序运行的瓶颈。2.2主要并行工具与函数Athread与OpenACC*均可用来进行从核并行, 与OpenACC*相比,Athread的操作性更高,可以 通过调用相关实现数据传输和从核运算的自主可 控,加速部分不再只限于循环计算,能够更加方便 对并行方案进行设计。完整的从核加速过程通常包含以下函数,如 表1所示。表1 Athread常用行数函数功能位置athread_init()开启从核阵列主核代码athread_spawn(arg1,arg2)从核对从核函数

15、计算主核代码athread_join()等待所有从核计算完成主核代码athread_halt()关闭从核主核代码athread_get(arg1 -8)加载数据到从核局部空间从核代码athread_put(arg1 -7)将计算结果传回主存从核代码athread_get_id(-1)获得当前从何逻辑编号从核代码2.3众核并行计算方案设计2.3.1数据存储模式由于本文采用交错网格,速度、v和压力p 3个主要变量存储在3套网格上,数据量和计算索 引均不统一,将会使寻址过程变得更加复杂。为此,本文中采用一种特殊的数据存储模式 (如图3所示):将速度u、v相对压力p多出的数 据单独存储,此时,u、V、

16、p共同存储在主控制 体上,且拥有相同的索引,从而简化寻址过程、 提高寻址效率。2.3.2数据分配本文采用循环并行,由于从核局部空间大小有 限(64 KB),因此合理分配数据才能充分利用从核 局部空间和计算资源。数据分配方案设计为:设定 单个从核单次计算的数据量NS,则64个从核一次 能够计算64XNS个数据,当数据量很大时,可以 将数据分批多次加载到从核上进行计算。此时,可 以根据当前的加载次数k、当前次加载的数据量N 以及从核ID号,确定当前从核(线程)所计算数 据的起始位置,并从主存获取数据。同时,为了考察通信的影响,论文对单独一个 循环进行测试,测试对象为人工压缩算法中内部单 元压强的计

17、算过程,结果见图4。从图4可见,当 NS增大时,加速比逐渐上升并趋于定值(左图)。 其原因为:随着NS值的增加,通信占比逐渐降低 并趋于定值(右图),从而使计算过程的加速效果 愈发突显。2.3.3数据结构量有限;同时,由于CFD计算过程复杂,将数据根据数据分配方案,NS代表从核计算的数据以结构体形式合理存储,可使数据的传输和使用更量,而从核局部空间的大小使单个从核存储的数据为方便。但是,将多个变量集中在一个数据结构中,必然会造成在当前计算中部分变量未使用的 情况,这样既增加通信负担,又占据存储空间。因 此,合理的数据结构非常重要。由于CFD程序中有多个计算热点需要并行化, 因此对数据结构进行针

18、对性的设计比较困难,本文 将重点放在尽量减少无用数据的存储和传输上。在 CFD程序中,将系数变量组成单个结构体,将、V、 p以主控制单元的形式组成结构体,并在此基础上 设计了如图5所示的数组结构体和结构体数组两种 形式,用于对比两者并行加速效果。L1 typedef structI J|LII 1typedef struct1I(I1 t| double u;11double unbelements;| double v;double vnbelements;| double p;double pnbelements;其他变量.1其他变量1| Element;1 | Element;| Ele

19、ment elementsnbelements;1|Element elements;|其他变量1其他变量11:1J结构数组数组结构(struct_array)(array_struct)图5两种数据结构3典型流动众核并行计算结果与分析3.1并行计算结果本文以二维方腔驱动流CFD模拟为算例,研 究众核并行的加速效果。方腔驱动流,是指方腔中的不可压缩流体随顶 盖匀速运动过程中的流动及流场结构变化等现象, 具有几何外形简单、流动结构特征显著、边界条件 容易实施等特点,常被用作不可压缩流动模拟结果 验证和数值算法测试的典型算例。数值模拟中,边 界条件都可采用速度边界:其中上边界(顶盖)有 水平方向速

20、度,其他边界满足无滑移条件。使用SIMPLE和人工压缩算法,分别采用数 组结构体和结构体数组两种数据结构,开展不同 网格单元数(100 xl00l 000 x 1 000)情况下、 Re = 1 000工况方腔驱动流的CFD模拟。图6给出 了方腔水平中线与垂直中线上的无量纲速度分布 数值计算结果,下页表2则给出主涡和次涡相对位 置的数值模拟结果;图表中同时给出文献10中 Ghia的计算结果。1.0-1.01.00.8 -0.90.6 -0.80.4 -0.70.2 -0.0-0.2 -0.4 -0.3-0.6 -0.2-0.80.1-1.0-0.8-0.6-0.4-0.20.0U0.20.40

21、.60.81.0人工压缩- - SIMPLEGHia0.500.4图6方腔水平和垂直中线上速度分布(左)及方腔内部流线分布(右),Re=1 000本文在并行计算过程中,并未改变迭代方法 等计算过程,因此,不同的数据结构和算法应有 基本一致的计算结果。根据图6以及表2可以看出:无论是速度分布或主涡与次涡的涡心坐标,均与参 考文献的结果十分接近,这也说明并行计算结果的 正确性。表2涡心位置计算结果算法涡心坐标主涡右下方涡左下方涡GHIA(0.531 3,0.562 5 )(0.859 4, 0.109 4)(0.085 9, 0.078 1 )SIMPLE(0.533 4,0.567 9)(0.8

22、62 1,0.115 2)(0.083 8,0.075 4)人工压缩(0.533 6, 0.567 4 )(0.863 3, 0.114 0)(0.083 3,0.074 9)图7给出不同网格单元数情况下,众核并行的 加速情况。从图中可以看出:随着网格单元数增加,加速比逐渐上升并 趋于平稳;从两种算法的对比来看,人工压缩算法的 加速效果(最高约24倍)优于SIMPLE算法(最 高约9倍);从两种数据结构的对比来看,采用数组结 构体并行加速效果优于采用结构体数组。3.2对SIMPLE算法计算流程的优化根据上一节的研究可以发现,在采用相同数据 结构的情况下,SIMPLE算法的并行加速效果明显 不如

23、人工压缩算法。其原因是SIMPLE算法的计算 流程更为复杂(见图1),从而导致计算热点分布较为分散。表3给出了 SIMPLE算法和人工压缩算 法的计算热点分析结果。表3 SIMPLE算法和人工压缩算法计算热点分析SIMPLE人工压缩计算u25.57%计算U,V75.43%计算V33.28%计算P12.33%计算压强修正量P20.65%判据12.23%修正u7.73%_修正V7.55%_修正P3.32%_判据1.90%_结合2.3节(图4)通信占比与计算占比之间 的关系,SIMPLE算法分散的热点会导致在众多的 简单循环计算中,因数据量有限,当计算中需多个 变量时,必然造成通信的增加,导致通信相对计算 有较大的占比,使局部加速效果偏低,进而导致整 个CFD计算程序的并行加速效果不理想。为此,本文对SIMPLE算法的计算流程进行优 化,将SIMPLE算法中非相关的数据计算过程进行 集中处理,即在一个大循环中通过判断语句进行不 同的计算。这样,在从核计算中,提高了数据的复 用性,减少常用变量的重复传输。流程优化前后的 计算热点对比见表4。表4 SIMPLE算法计算流程优化前后计算热点分布优化前优化后计算u方程25.57%u、V系数、p局部系数38.87%计算V方程33.28%u、V方程35.66%计算压强修正量Ap20.65%P剩余系数、P方程9.56%修正u7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论