研究文章|开放访问
刘夏真,卢中华,袁武,马文鹏,张健那 “基于神威太湖之光的大规模并行CFD仿真软件CCFD开发与优化“,科学的规划那 卷。2020那 文章ID.8847481那 17 页面那 2020. https://doi.org/10.1155/2020/8847481
基于神威太湖之光的大规模并行CFD仿真软件CCFD开发与优化
摘要
设计并实现了一种适用于超大规模结构块并行计算的基于结构网格的并行框架软件CCFD。针对图的细分算法,设计了一种基于域分解的负载均衡策略的超分解方法。该方法以计算和通信为限制条件,通过划分加权图来实现块之间的负载均衡。高效并行几何多重网格的快速收敛技术大大提高了CCFD软件的并行效率和收敛速度。介绍了CCFD的软件结构、过程调用和计算方法,并介绍了一种基于神威太湖之光异构架构的混合并行加速技术。通过Onera-M6和DLR-F6标准模型的计算结果表明,本文的软件结构和方法是可行的,能够满足大规模并行求解的要求。
1.介绍
计算流体力学(CFD)是一种流体力学问题的数值模拟和分析技术。CFD技术越来越多地应用于航空航天、气象预报等领域[1-4.].一些并行计算框架已用于并行CFD [5.那6.,例如OpenFOAM [7.)和苏2[8.那9.].并行计算方法越来越多地用于解决大规模计算密集型问题。并行编程环境,如OpenMP [10那11]和mpi [12那13]出现在并行机器,网络工作站和超级计算机上。CFD以数值方法,湍流模型和网格生成技术的开发导致其在模拟精度和复杂几何形状的容量中的进展。同时,随着工程问题的复杂性越来越复杂,数值模拟计算技术的快速进步,模拟精度的要求越来越严格,所需的计算量增加了几何上。并行CFD技术已成为解决复杂仿真计算的主要方法[14那15].
当前的CFD方法使用计算网格来模拟复杂几何形状中的流程,并通过网格的离散地形成不同的电池,然后是数值计算[15-17].为了更真实地模拟形状结构,通常采用多块方法来模拟不同的空间区域。解决大规模CFD问题的一种常用方法是应用域分解技术,将更多的子块分解,并将分解后的计算区域分配给不同的进程或线程进行并行计算[18-20.].在不同并行编程环境下并行计算的方法非常不同。MPI方法将一个或多个计算区域分配给处理器。随着完全隔离的不同计算区域,需要通过通信完成边界处的数据交换。OpenMP方法在计算区域实际上在一个处理器上使用的环境中的共享存储器,并且网格数据完全共享,呈现不需要的数据通信。因此,在使用不同的编程环境和网格类型时,设计不同的并行框架是重要的[21.那22.].
超级计算机架构通常要么是同构的[23.或异质的[24.].同构机器的每个核心架构是相同的,它们的地位是相同的。它们可以共享相同的代码或在每个核心上执行不同的代码[25.].通过共享存储或通过缓存可以互连均匀处理器[26.-28.].异构架构代表一个新的硬件平台,允许不同类型的处理器在共享内存中有效地一起工作[24.].异构架构不仅包括传统的CPU,还包括其他加速器单元,如gpu和MICs [24.那29.].这些不同的计算单元具有不同的指令集架构和内存空间[30.].CPU和加速器通过内存管理单元(MMU)统一访问系统内存[31.那32.].随着超级计算机技术的发展,传统的同构体系结构已经不能满足日益增长的计算能力和存储需求。因此,异构体系结构成为超级计算机发展最重要的技术。异构架构机器在当前超级计算机500强中占比超过30% [33.].在排名前五的并行计算机中,有四台具有异构架构。
本文研究内容的主要目的是开发一个基于多块结构网格的开源大规模并行求解器。首先,实现了基于同构体系结构的多核并行计算。二、基于神威太湖之光异构系统[34.]使用MPI + OPECACC / ATHREAD混合编程模型实现了CPU和加速器通信数据的计算[35.]及直接存储器存取(DMA)技术[36.].第三,通过使用模板计算,通过寄存器通信交换边界信息,以及单个指令,多个数据(SIMD)和装配指令用于优化计算密集区域并进一步提高计算性能。最后,Onera M6翼模型的平行模拟[37.]实现了10亿网格50万核的并行计算,实现了理想的并行加速效率。
2. CCFD软件设计和实现
2.1.CCFD软件架构
CCFD是由面向对象编程设计的[38.,其架构如图所示1.整个软件平台包括输入/输出控制模块,计算几何模块,求解器模块和并行算法模块。CCFD的系统架构需要考虑各种计算方法和物理模型的特征,并设计具有灵活性,鲁棒性,准确性和数据安全性的仿真软件。此外,并行框架设计需要满足高并行可扩展性,高数据传输效率和快速响应时间的要求。为了提高可维护性和可伸缩性,CCFD架构由块作为基本数据结构单元组织。基于此,平台中每个模块的数据使用和加载数据大大简化了程序界面并降低了开发的难度。
CCFD软件平台系统建立在块单元上。CCFD的结构和基本单元调用是块和边界。块的内部点和边界点被分为两种数据结构:块和bc。块中存储几何变量、计算变量等主要信息,边界类型和起始信息存储在边界中。根据阵列结构(AoS)和阵列结构(SoA)的优缺点,将块上的CCFD变量以SoA的形式组织。该方法的优点如下。一方面,网格变量的集中使用和加载提高了缓存的命中率和数据利用率。另一方面,方便了并行通信的封装和收集操作,有利于CCFD大规模计算的并行优化。
CCFD有效地集成了各种计算模型和方法。为了便于软件模块规范、代码组织开发和扩展维护,我们采用应用层模型对整个软件系统进行组织,使各层之间的代码模块相互独立,调用关系相互连接。求解器可分为五层。第一层是网格输入,控制文件的输入和处理器上块计算和通信的负载均衡。在第二层,根据计算需求将计算分为多块法和常规计算方法。第三层根据流动方程分为Euler模型、N-S模型和湍流模型。第四层是对不同方程选择时空项的方法。第五层是基本算法层,包括稀疏矩阵求解方法、模块化并行通信和错误信息输出。
2.2.CCFD软件过程
软件流程设计需要完全考虑使用的实际计算方法。例如,CCFD基于二阶精密有限音量方法使用多块结构网格,以解决部分微分方程并使用多重线程方法加速收敛技术。为了允许在并联机器上计算要计算大规模结构块,域分解技术用于将大规模块划分为更小的扩展子块。子块之间的邻接关系存储在块的信息中,并且在计算的每个迭代之后共享和更新信息,以确保部分微分方程和未分区块之间的兼容性。块的区域被分配给不同处理器以进行计算。此映射和分配过程涉及处理器上块的计算和通信负载平衡。因此,整个软件系统可以被认为是大致分为五个部分:预处理,面积分解,负载平衡,流场计算和后处理输出。
软件过程设计考虑了实践中使用的计算方法,符合多块之间的通信需求。无论分区并行计算还是多块计算,必须计算每个块上的部分微分方程。不同大小的子块的计算时间根据过程而异。尺度越大,计算时间越大。如果子块大小不统一,则会有多个进程等待单个进程。基于CCFD软件的上述特性,我们设计了一种软件并行过程,如图所示2.
基于块的单元数据,即CCFD的功能模块结构如图所示3..该结构分为八个模块。每个模块之间的调用和连接是基于块单元的。调用的主体是并行求解器。通过并行求解器,采用块几何模块、并行模块、源项解、右项解、紊流粘性、输出控制等方法完成整个求解过程。图中的连接线3.指示模块之间的链路关系。整个过程在很大程度上决定了软件系统的并行扩展效率。块分配给处理器的策略也会影响并行效率的提高程度。例如,计算和进程块之间的通信负载的不平衡将导致进程空闲地等待整个计算。
3. CCFD并行设计
3.1。负载平衡策略
域分解技术的目标之一是将一个大的块细分为更小的子块。子块的计算区域被分配给不同的进程或线程,以进行并行计算处理[19那20.].如图所示4.,三维结构块被细分为多个较小的子块,每个子块具有多个邻接表面,其表示子块之间的通信关系。当在不同处理器上计算子块时,相邻的表面需要执行数据传输和通信。
一旦域分解,形成更大数量的更小,更均匀的块。这些子块计算区域被分配给不同的进程或线程,以进行并发执行。在这个特定的过程中,我们需要确保分配给每个处理器的计算和通信相对平衡,并且没有闲置等待处理器。该块和课程映射分配的此过程称为负载平衡。目前,负载平衡方法有很多研究,已经提出了几种算法,包括贪婪算法,光谱法,遗传算法和蚁群算法[39.].这些算法适用于非结构化网格,但不能直接应用于结构化网格。传统结构网格负载均衡方法一般采用循环分配方法或均匀分配方法,均未考虑计算量和通信的负载均衡[20.].
针对大规模多块结构网格计算和通信负载均衡问题,CCFD科学家提出了一种超分解方法。CCFD将块和处理器映射和分配过程分为粗层和细层。在粗层,采用递归边界等域分解方法,将大而不均匀的块细分为更小、更均匀的子块。该算法是一种时间复杂度近似线性的方法,分解时间与块的个数和块的最大维数有关。粗层细分操作的目的是为进一步平衡计算和通信负载奠定基础。例如,不均匀的块使计算和通信分配难以平衡,这将导致一系列与处理器无关的块序列。在使用细层负载均衡算法之前,需要对粗层的子块重新编号。以每个子块中的网格数作为计算量的统计标准,以每个子块与其他子块的相邻面作为通信量的统计标准。该信息根据子块拓扑重绘成多向加权图,通信量和计算量为加权图的两个权重[40].细层图划分算法是基于上层形成的加权图进行图分割。尽可能均衡所形成的子域的总计算量,子域内的总通信量以子块间最小的通信量均衡[41.].数字5.显示多向加权图 对CCFD块进行预处理后绘制,并对的顶点进行分区进入以这样的方式设置,使得每个集合中的顶点权重的总和尽可能相等,并且在集合之间交叉的边缘权重的总和最小化。因此,该顶点的这种分区保证了每个处理器中的计算相等,并且处理器之间的通信最小化。基于的方法K.-way图划分具有中等的计算复杂度,其计算复杂度为 那和是算法的递归等分级别。
本文讨论了如何发现计算实例的计算规模和子块数量与计算量和通信负载均衡有直接关系。例如,子块的数量和子块的大小直接影响过程中计算量的分布。子块的数量越多,大小越均衡,计算的分布就越均衡。但是,分区的数量越多,块的相邻区域就越大。这种情况直接导致了通信量的增加,影响了块间通信负载均衡的实现。以M6计算中的块大小为11000 ~ 13000,切割面面积为450 ~ 625为例。区域分解后的块大小和相邻面相对均衡,有利于负载均衡。数字6.展示了实际的计算负载分配,在M6计算示例中,使用256或512线程。
(一)
(b)
测试M6型号,我们发现,随着并行量表的增加,计算负载的实际分布将变得更糟,随着线程数量的增加。在这种情况下,256个线程是计算负载平衡的临界点。当线程数小于256时,整体计算负载均衡是理想的。然而,当线程数大于256时,计算负载的实际分布将显着差异。当分区中的子块大小和块的总数稳定时,分配给每个过程的块的数量减小线程数增加。然后,对每个线程上的块数的差异和块的实际尺寸的差异产生的计算量的影响增加,导致进程计算负载平衡程度降低。
区域分解后,块的总计算量保持稳定,块之间的绝对通信量随着并行核数的增加而增加。在块间通信负载均衡方面,随着并行规模的增加,通信负载均衡程度降低。数字7.显示M6计算示例中的每个过程的实际通信负载分布,使用256和512线程。
(一)
(b)
3.2。并行数据结构
CCFD支持两个网格格式:CFD常规符号标准(CGNS)网格和Plot3D。软件系统的操作涉及访问和更新各种数据,其主要包括控制参数,网格数据,流场数据和临时变量。特定块变量如下:类型,公共:blocks_type类型(cell_type),指针,维度(:,:,):cell类型(coordinate_type),指针,维度(:,:,):坐标类型(metric_type),指针,维度(:,:,):度量类型(variable_types),指针,维度(:,:,):变量类型(variable_mg_types),指针,维度(:,:,):variable_mg类型(turbulent_type),指针,尺寸(:,:,):turbulent_type终端类型blocks_type
所有数据都可分为全局,本地和交换数据。全局数据是指所有处理器在计算期间将保存和未修改的数据,例如控制参数。本地数据是指仅在本地存储的数据,并且不与其他处理器共享,例如块内部点中的流场数据。交换数据是指需要与其他进程交换的数据,例如相邻面的边界数据。
在CFD中进行大规模并行计算时,大量的数据读取和交换为数据结构和数据流提供了极大的考验。合理的数据结构和数据流设计直接影响到平台运行的可靠性和效率。为了保证数据的有效性和安全性,CCFD并行软件的设计基于块数据结构。网格数据、边界数据和流场数据存储在每个块单元中。如图所示8.,块存储诸如网格坐标、边界信息和原始变量等信息[40那41.].
3.3。并行通信优化
计算和通信块的比例是影响软件并行扩展性能的主要因素之一。理想情况下,大量的本地计算是计算优先级问题,少量的通信有利于并行扩展。在本地计算量较小的情况下,通信量大是通信优先级问题,导致并行可伸缩性差。并行软件使用的计算模型和方法决定了本地计算量,并行软件的通信方式影响着通信量。例如,在实际计算中,存在许多小而频繁的数据通信、大量的数据和固定数量的块边界更新、一对多的广播数据和多对一的主从通信等挑战。针对这些挑战,使用一种不同的、灵活的通信方式,有利于软件的并行扩展。
CCFD采用遍历和分配块的方式进行通信。每个进程遍历所有块号。只计算本地块,根据实际通信需要使用非本地块进行异步通信。例如,当进程1与进程2通信时,每个进程将邻接面关系中的网格封装成非阻塞传输,然后直接执行后续计算。在本地使用通信数据之前,它不会检测通信是否已经完成。如果沟通完成,可以直接使用;否则,等待通信完成。在图9., B4和B6分别是数据的发送方和接收方。在非阻塞通信情况下,B4和B6只需要发送数据进行后续计算,而不需要等待数据接收完成。
CCFD的实际计算,有大量的小和频繁的交流,如当地的子块的检测,当地的子块的更新,更新的流场数据,湍流模型的计算,和多栅的上下插值过程中,发生块后阅读。这些小而高频的通信非常耗时,影响处理器的并行效率。为了解决这些问题,我们通常使用集合通信、数据预取和计算替代通信等方法。集体通信将高频通信次数打包,以减少通信请求的数量,从而减少通信时间。预取技术的目的是在每次计算迭代时提前获取数据,并隐藏通信时间。另一种计算方法是通过计算完成局部结果,提高数据利用率,减少通信时间和数据量。
当局部进程中存在大量不均匀块时,在阻塞或顺序遍历执行模式下,程序容易出现空闲等待。例如,小块快速结束计算,进入通信。大块还没有进入通信,数据还没有准备好,会导致等待时间长。计算和通信的重叠部分如图所示10.每次通信请求在数据发送后结束,直到在计算过程中使用接收到的数据时才检测通信是否完成。例如,处理器P1和处理器P2相互发送数据,但一旦通信结束,这些数据不一定立即使用。在这种情况下,我们可以将数据发送到后台继续处理,处理器可以执行后续的计算,直到数据被使用,并检测到是否已经接收。该方法允许数据通信和计算同时进行。由于通信时间隐藏在计算时间之下,因此称为计算与通信的重叠技术。
通信方式的设计和选择在很大程度上决定了并行软件的计算效率和并行扩展性。不同的计算方式和方法、不同的数据结构要求根据实际情况设计合理灵活的通信方式。CCFD并行软件采用灵活的通信方式,针对不同的计算模型和方法进行不同的并行优化设计。对通用的数据通信方法进行了模块化设计,大大简化了程序的编程和维护过程,实现了理想的并行效率和数据利用率。
4. Sunway Toihulight异构平台上的优化
Sunway Toinghulight是中国第一家100P异构系统超级计算机。它是由中国并联计算机工程技术(NRCPC)的国家研究中心开发的,并安装在无锡省国家超级计算中心。它专门由Sunway的SW26010处理器提供动力,HPL标记为93.0 Petaflops,并在Top500的超级计算机列表中保留了三个位置[33.].SW26010多核处理器由四个计算核心组(CGS)组成,并且四个CGS通过片上网络以高速互连,如图所示11.每个CG由管理处理元件(MPE)和包含64个计算处理元件(CPE)的多核阵列组成。MPE可以直接访问内存,而CPE可以直接访问主存储器并支持DMA批处理数据传输[34.].
由于SW26010处理器内存访问速度慢,内存访问指令延迟大,内存访问问题严重影响了CFD求解器的性能。在神威太湖之光对CCFD求解器进行了移植和优化,通过三种方式解决了程序内存访问问题:采用高速存储代替主存访问;消除或减少内存访问操作;以及隐藏内存访问时间。本文的优化工作主要分为以下几个方面。我们使用MPI实现核心组之间的并行通信,使用thread实现核心组中的主从核并行。从核的数据存储在核心组中,分区子区域,DMA批传输消除了主存取操作。优化了矩阵数据连续访问。采用了快速Carmack算法。重新安排了向量化计算和手工装配指令。 The use of a double cache method to cover fetch time significantly improves the parallel efficiency.
4.1。数据分区和DMA参数调整
基于SW26010的内存大小和DMA实现域分解和DMA参数调谐的性能优化CCFD。CCFD使用的许多核心组计算网格的块划分如图所示12.用32 * 32 * 32块作为示例,为了有效地使用CPE的存储空间,64个从核块沿着沿线划分网格数据X-y横截面。然后,将划分的块数据分配给64个从属核心,并且64个从核同步执行相同的计算过程以完成整个块的流场计算。
在实际编程中,计算子域的大小划分和方向选择需要进一步优化,结合DMA的计算过程和性能。核心处理单元的LDM (local data memory)为64kb,实际流场计算时,不同计算过程所需的存储空间大小为12kb ~ 100kb以上。基于此,临时存储的LDM数据需要严格控制计算规模,灵活利用DMA批量传输,消除从内存中获取数据的取操作,从而减少取数据时间。在图11,DMA被奴隶核心调用。X是数据块的最小维数,y是次要维度,和Z.是最高的维度。沿着最高维度的数据被分配到同一个从处理器,它们沿着Z.设在。通过从核处理器循环计算传输到局部的数据,完成单个块流场的迭代求解。
4.2.注册通信优化
在块子区域数据均匀地分布到从核阵列之后,在片上总线上彼此相邻的物理位于彼此的从属核心具有相邻的全局网格数据。SW26010处理器支持相同的从核阵列寄存器执行点对点离散通信。寄存器通信理论的聚合带宽远大于DMA的理论集合带宽。本文使用寄存器点对点通信来获取存储在相邻从属核上的边界数据X-y从核心阵列组中的平面。此外,算术操作的寄存器通信和异步机制用于填充与RLC_GET / RLC_PUT指令之间的通信数据无关的指令,以覆盖寄存器通信之间的通信时间。
如图所示13,使用XY平面为例,绿点表示存储在从属核心LDM上的网格数据。对本地小区的流场计算在每个从核上执行,并且返回更新结果。然而,局部小区使用细胞数据在四个方向上含有含有图中晕络电池的一部分的方向计算13并分配给相邻的从属计算单元完成局部内点的计算。对于本文讨论的三维13点模型,在从核中读取一层计算子区域数据块后,还需要从周围四个方向读取两层晕数据块来完成计算。
SW26010支持对等体和同列之间的注册通信。在加速器阵列上,同列或同列的加速器寄存器实现互联通信,每次可传输128位数据。如表格所示1和2,对等处理器将数据放在寄存器中并指定对等处理器的目标号码,然后将数据发送到目的地。目标处理器将通过因特网收集数据并将其保存到处理器的寄存器,实现寄存器的通信操作。
|
|
4.3.SIMD计算与装配指令优化
SW26010支持256位SIMD指令集,可以同时执行四种双精度或八个单精度数据操作。为了确保使用SIMD,计算过程和变量阵列的地址对齐需要进行对齐调整。同时,在确保计算正确的前提下,手动调整SIMD_LOAD / SIMD_STORE和计算指令,使得负载/存储和计算时间是部分隐藏的。SW26010的数据访问和存储处理和算术在两个管道上运行。为了实现数据获取和算术运算的重叠,本文通过手动调整指令顺序来分析由编译器生成的指令顺序,并实现数据获取负载/商店操作和数据无关操作的重叠。此方法可以消除数据依赖性并提高代码效率。
为了进一步提高计算性能,对计算代码进行了分解。如表所示3.,通过观察拆解后指令执行顺序,我们发现内存访问指令和计算指令完全分离,在启动一条计算指令之前,管道上发出了近6条访问指令。在确保数据不相关之后,我们使用内联汇编函数和手写汇编代码,而不是函数接口代码。如表所示4.,在手动调整汇编代码之后,实现存储器访问和计算指令时间的重叠。
|
|
5.CCFD应用及结果
为验证CCFD软件的架构和并行性能,本文选择DLR-F6翼形机身组件,CT-1标准模型和用于测试的超大型M6翼模型。测试平台是北京计算机网络信息中心的元超级计算机,在无锡国家超级计算中心的Sunway Toinghulight超级计算机。
5.1。神威太湖之光的优化结果
使用尺寸32 * 32 * 32作为优化情况,将块数据分为CGS上的8 * 8从集群,优化了CCFD的主要计算功能和热点,流场计算加速,整个CFD仿真过程已完成。数字14显示SIMWOWES编译器在ROE方案计算部分中提供的SIMD优化,以及在内联组合指令优化之前和之后的平均循环编号的比较。SIMD和装配说明的优化效果很大,在实现备用和手动指令调整的重叠中进一步优化了计算。
目前,CCFD已经完成了主要功能模块的加速度优化,包括通量计算、湍流模型、时间推进方法,从核加速度比最终达到30比1以上。数字15展示了CCFD主要计算功能模块优化前后的计算时间对比。
5.2。DLR-F6翼体组件
德国航空航天中心的DLR-F6翼架组件是跨音运输飞机的典型示例,可验证CFD求解器的计算复杂形状的能力[42.].计算条件为马赫数Mach = 0.7510,雷诺数Re = 0.0212465 × 106,攻角α= 1.003°,侧滑角β = 0°. The calculation method uses Roe scheme, LU_ADI time advancement method, three-layer mesh sequencing strategy, and the Spalart-Allmaras turbulent model. Figure16显示整个集会的压力云图。
数字17将试验结果与计算结果进行了比较。计算结果与实验结果一致,验证了CCFD可以模拟复杂形状飞机的流场计算。
5.3。CT-1标准模型
CT-1是2005年中国空气动力学研发中心发布的高角度静态空气动力学特征的模型[43.].我们专注于CFD解决方案软件在高角度的静态空气动力学特性的数值模拟能力。数字18显示不同攻角的气压云图。
数字19对比了实验结果和各攻角的阻力系数。将实验结果与CT-1标准模型大攻角静气动特性计算结果进行对比,CCFD计算结果与实验结果一致,验证了cfd求解大迎角静气动特性的数值模拟能力。
5.4。超大型平行测试M6翼
Onera M6机翼标准计算模型[37.]使用了6.5亿个网格和28160个区块。验证了万核以上并行求解器的能力和CCFD的并行扩展性能。计算条件为马赫数Mach = 0.840,雷诺数Re = 21.70 × 106,攻角α= 3.06°,侧滑角β = 0°. The calculation method uses Roe scheme, LU_ADI time advancement method, and the Spalart-Allmaras turbulent model.
CCFD基于神威太湖之光异构平台,核心组之间使用MPI进行通信,核心组中的64个从核使用thread并行加速。数字20.结果表明,在三威太湖之光1.3万核和500,500核的异构平台下,CCFD的并行效率达到60%。并行结果测试表明,CCFD的超大规模并行计算可扩展性满足设计要求。
6.结论和未来的工作
利用域分解的多块结构网格并行技术,设计了并行CFD求解软件的并行软件框架、软件流程、并行数据结构和通信方式。设计的CCFD可用于大规模超大核并行计算任务,具有良好的并行扩展能力和并行效率。CCFD的超分解负载均衡策略保证了计算和通信的负载均衡性能。采用基于多重网格技术的网格排序方法,可以加快迭代收敛速度。我们在神威太湖之光异构架构中对DMA、SIMD、汇编指令重排和双缓冲进行了优化。跨核心组最大并行505,000核的超大计算规模测试在13,000核的基础上实现了60%的并行效率。在未来,我们将采用湍流模型的直接数值模拟来实现更真实的几何流动模拟,增加案例的规模和并行度,实现并行CFD软件在异构系统中更高效的运行。
数据可用性
用于支持本研究结果的网格数据可根据要求从通讯作者处获得。
的利益冲突
作者声明他们在这篇论文的发表上没有利益冲突。
致谢
国家重点研发计划项目(No. 2019YFB1704204);国家自然科学基金项目(No. 61702438, No. 11502267);中国科学院战略性先导技术专项(B类,XDB22020102, C类,XDC01040100);基金资助:国家自然科学基金资助项目;xxh13506 - 204)。
参考
- J. Blazek,计算流体动力学:原理与应用,elestvier科学出版物,阿姆斯特丹,荷兰,2005年。
- H. K.Versteeg和W.Malalasekera,计算流体力学导论,培生教育有限公司,英国伦敦,第二版,2007。
- P. Wesseling,“计算流体动力学原理”,载计算数学,卷。29,斯普林斯 - 弗莱尔格,柏林,德国,2001年。查看在:谷歌学者
- C.-L。林,M. H. Tawhai, G. Mclennan和E. A. Hoffman,《计算流体动力学》,医学与生物工程杂志,卷。28,不。3,第25-33,2009。查看在:出版商网站|谷歌学者
- F. He,X. Dong,N.Zou,W.wu和x. Zhang,“基于混合MPI / OpenMP编程的粗粒并行CFD求解器的结构化网格化框架设计和优化”超级计算杂志,第76卷,第76期4、第4页。查看在:出版商网站|谷歌学者
- A.Gel,E. J. Hu,E. Owe-Ahmed-Vall,A. Kalinkin,“遗产开源CFD代码的现代化和优化,用于高性能计算架构”,国际计算流体动力学杂志,卷。31,不。2,pp。122-133,2017。查看在:出版商网站|谷歌学者
- S. Li,R.Paoli和M. d'Mello,“基于OpenFoam密度的求解性的可扩展性,带有跳动 - 库特拉时间离散化方案”,科学的规划,卷。2020,物品ID 9083620,11页,2020。查看在:出版商网站|谷歌学者
- F. Palacios,T. D. Commongon和J. J.Alonso,“使用SU的大型飞机设计”2,“在AIAA航空航天科学会议记录, 2015年1月,美国佛罗里达州基西米。查看在:谷歌学者
- F. Palacios, A. Alonso, K. Duraisamy等人,“多物理模拟和设计的开源集成计算环境”包括新视野论坛和航天博览会在内的国际航空航天协会航天科学会议记录,葡萄树,德克萨斯州,美国,2013年1月。查看在:谷歌学者
- S. Yakubov, B. Cankurt, M. Abdel-Maksoud,和T. Rung,“混合MPI/OpenMP并行化的欧拉-拉格朗日方法的空化建模”,电脑&液体,卷。80,pp。365-371,2013。查看在:出版商网站|谷歌学者
- y。王,l l。张伟,刘旭辉。Cheng, Y. Zhuang, A. T. Chronopoulos,“基于数百万核CPU + MIC混合异构计算系统的可扩展CFD应用的性能优化”,电脑&液体,卷。173,pp。226-236,2018。查看在:出版商网站|谷歌学者
- D. Cheng,C. Xu,B. Cheng,M. Xiong,X. Gao和X. deng,“Suppy Lu-SGS的性能建模和优化在许多高阶CFD模拟中的许多核心处理器”,“超级计算杂志,卷。73,没有。6,pp。2506-2524,2017。查看在:出版商网站|谷歌学者
- O. Bessonov,“多核计算机的CFD代码的OpenMP并行化:分析和比较”,“第十一届并行计算技术国际会议论文集,PaCT 20112011年9月,俄罗斯喀山。查看在:谷歌学者
- A. Amritkar,S. Deb和D. Tafti,“使用OpenMP的高效并行CFD-DEM仿真”计算物理学,卷。256,pp。501-519,2014。查看在:出版商网站|谷歌学者
- V. Moureau, P. Domingo,和L. Vervisch,“复杂几何的大规模并行CFD代码设计”,政府建筑渲染Mecanique,第339卷,第2期。2-3, pp. 141-148, 2011。查看在:出版商网站|谷歌学者
- 冯海峰,“欧拉-欧拉各向异性高斯中尺度模拟均匀团簇诱导的气粒湍流,”AICHE杂志,卷。63,否。7,pp。2630-2643,2017。查看在:出版商网站|谷歌学者
- A. Capecelatro, A. cable - chantrenne, A. Jundt等,“在基于intel - knl的集群上运行大规模CFD应用”,液体中数学方法的国际杂志,卷。86,没有。11,pp。699-716,2018。查看在:出版商网站|谷歌学者
- L. Lapichino,A. Squartoni和G. Rozza,“网络和网络中椭圆问题的基础方法和域分解,”复杂的参数化几何形状“,计算机与数学应用,第71卷,第71期1, pp. 408 - 430,2016。查看在:出版商网站|谷歌学者
- S. Badia和H. Nguyen,“通过限制和扰动平衡域名分解”暹罗杂志数值分析第54卷第5期6、pp. 3436-3464, 2016。查看在:出版商网站|谷歌学者
- S. Badia, A. F. Martín,和J. Principe,“极端尺度下的多级平衡域分解”,暹罗学报科学计算,卷。38,不。1,pp。C22-C52,2016。查看在:出版商网站|谷歌学者
- O. S. Lawlor,S.Chakravorty,T.L.Wilmarth和N. Choudhury,“Parfum:非结构化网格的并行框架,可用于可扩展的动态物理应用,”与计算机工程第22卷第2期3-4,页215-235,2006。查看在:出版商网站|谷歌学者
- G. T. Abraham, A. James, N. Yaacob,“网格中并行多任务调度的优先级分组方法”,计算机与系统科学杂志第81卷第1期6, pp. 943-957, 2015。查看在:出版商网站|谷歌学者
- T. Shimokawabe,T. Aoki和N. Onodera,“大型GPU / CPU模板应用的高生产率框架”,Procedia计算机科学,第80卷,1646-1657页,2016。查看在:出版商网站|谷歌学者
- i.z. regulale和g.r. Mudalige,“计算流体动力学应用的生产力、性能和可移植性”,电脑和流体,第199卷,第104425条,2020年。查看在:出版商网站|谷歌学者
- J. Wang,X. LV和X. Chen,“均匀多处理器上名单调度算法的比较分析”IEEE通信软件和网络国际会议的诉讼程序北京,中国,2016。查看在:谷歌学者
- L. Chai,A. Hartono和D. K. Panda,“设计高性能和可扩展的MPI内部节点通信支持,”IEEE集群计算国际会议的诉讼程序, IEEE,坦帕,佛罗里达,美国,2006年11月。查看在:谷歌学者
- 问:唐,L.-H。朱林,周磊,熊建军。Wei,“在同构多处理器系统上用最优复制策略调度有向无环图”,并行和分布式计算学报,第138卷,第115-127页,2020。查看在:出版商网站|谷歌学者
- A. Kayi, T. El-Ghazawi,和G. B. Newby,“新兴同构多核架构中的性能问题”,仿真建模实践与理论,卷。17,不。9,pp。1485-1499,2009。查看在:出版商网站|谷歌学者
- S.G.Ahmad,C. S. Liew,E. U. Munir,T. F. Ang,以及S. U.Khan,一种用于优化异构计算系统中的调度工作流程应用的混合遗传算法,“并行和分布式计算学报,第87卷,第80-90页,2016。查看在:出版商网站|谷歌学者
- H. a . Tokel, G. Alirezaei, S. Baig,和R. Mathar,“基于异构通信网络的WAMS规划优化框架”,在IEEE智能电网通信国际会议的诉讼程序,Ieee,悉尼,澳大利亚,2016年11月。查看在:谷歌学者
- 邓磊,白凤华,白凤华,“基于CPU/GPU的多块可压缩Navier-Stokes求解器”,“基于GPU的多块可压缩Navier-Stokes求解器”,国际现代物理学杂志:会议系列,卷。42,物品ID 1660163,2016。查看在:出版商网站|谷歌学者
- W. Cao,C.-f.徐,Z.-h。王,L. Yao,H.-y。刘,“CPU / GPU计算用于大型异构系统上的多块结构网格的高阶流量求解器”,“集群计算,卷。17,不。2,pp。255-270,2013。查看在:出版商网站|谷歌学者
- 超级计算500强网站(EB/OL), 2019,https://www.top500.org.
- Xu Z., J. Lin, and S. Matsuoka, " Benchmarking SW26010 multi -core processor, " in2017 IEEE国际并行和分布式处理研讨会论文集(IPDPSW),第743-752页,IEEE,奥兰多,佛罗里达,美国,2017年5月。查看在:谷歌学者
- 傅辉,廖建军,杨建军等,“神威太湖之光超级计算机:系统与应用,”中国信息科学,第59卷,第59期7, pp. 113-128, 2016。查看在:出版商网站|谷歌学者
- C. Yang,W. Xue,H.Fu等,“10M核心可扩展全隐式求解求解器,用于非水静态大气动态”高性能计算、网络、存储和分析国际会议论文集,Ieee新闻,盐湖城,US,2016年。查看在:谷歌学者
- Z. Johan, K. K. Mathur, S. L. Johnsson,和T. J. R. Hughes,“并行计算的案例研究:ONERA M6机翼周围的粘性流”,液体中数学方法的国际杂志第21卷第2期10,第877-884页,1995。查看在:出版商网站|谷歌学者
- W. S. Brainerd,“面向对象编程”,在Fortran 2008编程指南,春天,柏林,德国,2015年。查看在:谷歌学者
- 邓文,“一种有效的多策略协同进化蚁群优化算法及其应用,”国际仿生计算杂志,第20卷,第2期。5,第1-10页,2020。查看在:谷歌学者
- D. LaSalle, M. M. A. Patwary, N. Satish, N. Sundaram, P. Dubey,和G. Karypis,“为现代图和架构改进图划分”,在第5次讲习班关于不规则应用的课程:架构和算法,Acm,奥斯汀TX,美国,2015年11月。查看在:谷歌学者
- 尚哲,“大规模网格的CFD并行计算”,工程杂志,卷。2013年,第850148号,6页,2013年。查看在:出版商网站|谷歌学者
- J. C. Vassberg, A. J. Sclafani,和M. A. DeHaan,“DLR-F6模型的翼体整流罩设计:DPW-III案例研究”,技术代表,AIAA,莱斯顿,弗吉尼亚州,美国,2005,报告第1号。张仁- 2005 - 4730。查看在:谷歌学者
- 王勇,王刚,陈振宇,“CT-1模型大攻角静态气动特性的数值模拟,”航空学报,第29卷,第2期4,第859-865页,2008。查看在:谷歌学者
版权
版权所有©2020刘夏珍等人。这是一篇发布在创意公共归因许可证,允许在任何媒介上不受限制地使用、传播和复制,但必须正确引用原作。