没有合适的资源?快使用搜索试试~ 我知道了~
软件X 11(2020)100395原始软件出版物nsCouette--一个湍流Taylor-Couette流直接数值模拟的高性能程序Jose Manuel Lópeza,a,Daniel Feldmannb,b,Markus Ramppc,Alberto Vela-Martínd,Liang Shie,Marc Avilab奥地利科学技术学院,Am Campus 1,3400 Klosterneuburg,Austriab不来梅大学应用空间技术和微重力中心,Am Fallturm 2,28359 Bremen,GermanycMax Planck Computing and Data Facility(MPCDF),Gießenbachstraße 2,85748 Garching,Germanyd马德里理工大学航空学院,Plaza del Cardenal Cisneros 3,28040 Madrid,SpainMax Planck Institute for Dynamics and Self-Organization(MPIDS),Bunsenstraße 10,37073 Göttingen,Germanyar t i cl e i nf o文章历史记录:收到2019年8月8收到修订版2019年12月2日接受2019年12月26日保留字:壁面湍流旋转剪切流热对流直接数值模拟(DNS)混合并行GPUa b st ra ct我们提出了nsCouette,一个高度可扩展的软件工具,以解决它是基于伪谱空间离散化和动态时间步进。它被实现在现代Fortran中,采用混合MPI-OpenMP并行化方案,因此设计用于计算高雷诺数和瑞利数下的湍流还提供了用于中等问题大小的附加GPU实现(C-CUDA)和用于管道流的版本(nsPipe)©2020作者由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本1.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2019_225法律代码许可证GPL v3使用git的代码版本控制系统软件代码语言、工具和服务使用Fortran、C(用于某些内务处理任务)、MPI、OpenMP编译要求、操作环境依赖性在Linux和IBM AIX下开发和测试编译器:AFortran 2003兼容OpenMP-3的编译器、基本C编译器、支持MPI_THREAD_SERIALIZED的MPI库、串行BLAS/LAPACK库、串行但完全线程安全的FFTW-3安装或等效安装,用于输出和可视化(可选):MPI并行HDF 5安装。链接到开发人员文档/手册https://gitlab.mpcdf.mpg.de/mjr/nscouette问题支持电子邮件nsCouette@zarm.uni-bremen.de1. 动机和意义工程和自然界中的流动通常以大的雷诺数(Re)或瑞利数(Ra)为特征。例如,天体物理学圆盘中的气体流动、大气流动和*通讯作者。电子邮件地址:jlopez@ist.ac.at(J.M.López),daniel zarm.uni-bremen.de.Feldmann)。https://doi.org/10.1016/j.softx.2019.100395旋转机器的冷却。在大多数情况下,它是不可能解决所有尺度的湍流直接数值模拟(DNS)。然而,DNS提供可靠的数据,允许外推到大Re限制,并使足够的亚网格尺度模型的发展。Taylor–Couette (TC)flow – the flow– stands out as a testbed for these purposes [它允许探索各种物理机制,包括浮力,剪切,旋转和弯曲壁附近的边界层2352-7110/©2020作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx2J.M. López,D.Feldmann,M.Rampp等人粤公网安备44010802000011号×O==我们的DNS代码nsCouette集成了不可压缩的Navier-Stokes可选地,可以对气缸壁进行差分加热,在这种情况下,求解用于温度的附加本文的目标是使nsCouette公开可用,从而使旋转湍流剪切流的DNS在数学,物理和工程界的广泛用户2. 软件描述2.1. 功能在 nsCouette 中 , 使 用 伪 谱 Fourier-Galerkin 方 法 对 方 位 角(θ)和轴向(z)方向的控制方程进行离散高阶有限差分(FD)用于r;唯一的非均匀方向。用户可以在运行时选择径向网格点的分布,FD方案的模板长度在编译时指定,默认值为9个点。在z中假设周期性边界条件(BC),以避免需要靠近垂直边界的密集网格。对于从层流到高度湍流的大范围Re,采用轴向周期性BC的DNS与采用固体端板的实验室实验之间的比较非常令人满意[2]。此外,z周期性通常提供更准确的天体物理和地球物理流动模型,并防止由于不希望的端壁效应而导致的误导性物理解释[3,4]。方法和实现的细节发表在[5]中。时间积分方案已升级为这实现了具有动态控制的可变时间步长,这在流动状态突然改变(施加扰动、改变旋转速率)或自然地经历强瞬态动态时是有利的另一个重要的升级是扩展到传热的地方,温度差的气缸之间的是强加的。为此,已经实施了Boussinesq近似[7]来解释浮力效应。在nsCouette的分布式版本中,考虑了r中的负温度梯度,而重力在z中对齐。其他场景可以只需更改几行源代码即可轻松进行调查此外,无发散的初始条件可以用来容易地激发选定的傅立叶模式。这使得用户能够系统地研究不同的过渡情景。单个输入文件定义所有相关参数(点数、模式和时间步长、旋转速率等)。 在运行时。每次重新启动时,可以使用自动插值和模式填充功能更改空间分辨率。这一点和许多其他方便的功能,以及一些最常见的高性能计算(HPC)平台的示例Makefiles,为新手提供了一个简单的开始,进入高分辨率和大规模并行DNS的世界。包含一个用户指南,以帮助非专家用户开始使用nsCouette(编译,设置,选择适当的分辨率,分析数据等)。2.2. 软件构架随着时间的推移,nsCouette已被移植到所有主要的基于CPU的HPC平台。在IBM Power,BlueGene和x86_64架构中-NEC SX-Aurora矢量架构和多GPU集群的开发正在进行中。构建可执行文件需要一个现代的Fortran编译器,一个标准的C编译器和很少的附加库:MPI,BLAS/LAPACK,FFTW和可选的HDF 5 。 所 有 这 些 都 是 高 质 量 的 开 源 软 件 ( 例 如 GCC ,OpenMPI[8],FFTW[9],OpenBLAS)和供应商优化的工具链(例如Intel Parallel StudioPSXE)。我们的代码在笔记本电脑上运行,- 可高效扩 展到最大的 HPC 系统,上千个处 理器核心 [10] 。nsCouette的基本架构和我们对混合MPI-OpenMP并行化方案(HPS)的设计选择直接遵循停滞不前的每核心性能。我们的HPS的基础是一个一维(1d)MPI-只有板分解成傅立叶模式,它可以处理彼此独立的计算中出现的线性项 的 控 制 方 程 。 为 了 计 算 非 线 性 项 , 采 用 全 局 数 据 转 置(MPI_Alltoall)和任务本地转置来在每个MPI任务上本地收集所有模式。因此,径向网格点的数量(Nr)(其通常比傅立叶模式的数量小得多)对一维MPI-唯一方法施加了自然限制。我们放宽了这一限制,引入一个额外的并行化层,这样,每个MPI任务的多个核心将被分配,以适应多- ple的OpenMP线程。首先,这允许计算傅立叶模式上的OpenMP并行循环中的线性项。其次,在非线性项的计算期间,可以通过重叠状态变量的全局转置和傅立叶变换来利用OpenMP-粗粒度并行性。总的来说,当面对2dMPI-仅域分解(例如[11])时,这可能对于某些设置更优越,我们的HPS是多功能性,实现简单性和可实现的峰值并行可扩展性之间的极好折衷。此外,我们还提供了一个用C - CUDA编写的基本GPU版本的nsCouette,它实现了与Fortran版本完全相同的数值模式,但目前提供的输出和功能较少。这些将在未来添加。需要具有CUDAGPU版本以大规模并行设置在单个GPU设备上运行,具有数千个GPU线程和高效的内存管理。它依赖于用于线性代数的自定义CUDA内核,使用高度优化的cuFFT库来执行傅立叶变换,而无需节点间通信,因此,对于适合一个GPU的主存储器(RAM)的小问题,相对于Fortran2.3. 计算性能MPI任务的数量可以在程序启动时选择,并在运行之间改变,唯一的限制是它必须除以Nr。nsCouette的HPS实现了远远超出一维MPI方法所施加的限制的可扩展性,并且自然地映射到流行的多节点、多核HPC架构。具体而言,灵活地选择每个节点的MPI任务数量和每个MPI任务的OpenMP线程数量的在这样的机器上,nsCouette使用O(104)个核心实现了具有Nr O(103)的高度解析DNS [5]。 从绝对值来看,为 一个 中间 问题 尺寸为Nr512,513 1025个傅立叶模式(即Re高达 (10(4)计算- 在当代HPC集群的64个节点(2560个核心)上,单个时间步长的执行不到一秒(图1),J.M. López,D.Feldmann,M.Rampp等人粤公网安备44010802000011号3=×=-图1.一、 典型nsCouette运行(N r)的时间步长和主要算法组件(不同颜色)的细分512和5131025傅立叶模式),使用特定于平台的MPI任务/节点数(TpN),在各种HPC集群的32和64个双插槽节点上计算。 IVB:Intel Xeon E5- 2680 v2(IvyBridge),20核/节点。 BDW:Intel Xeon E5- 2698 v4(Broadwell),40核/节点。 SKL:IntelXeon 6148(Skylake),40核/节点。 KNL:Intel Xeon Phi 7230(KnightsLanding),64核/节点。ARM:Marvell ThunderX 2 ARM v8.1,64核/节点。IVB和BDW集群使用Mellanox InfiniBand FDR网络(56 Gbit s−1),而SKL和KNL使用Intel OmniPath(100 Gbit s−1)。ARM集群与Cray Aries(80 Gbit s−1)互连。nsCouette是使用平台优化的软件工具链(即编译器和库)构建的,但没有对源代码进行平台特定的优化。相应的Makefiles随代码一起提供。(关于此图例中颜色的参考解释,请读者参考本文的网络版本大约450 GB的RAM。在SKL平台上,此运行的性能达到1. 5TFlop/s,由于算法的算术强度相当适中(0.3),因此受存储器带宽的限制。当增加固定问题大小的核心数量时,FFT和线性项的计算显示出非常好的可扩展性,而全局转置最终限制了大核心数量时的总并行效率(图1)。①的人。nsCouette的并行可扩展性和效率的全面研究已在[5]中提出,并显示了其扩展到极高内核数的潜力在[10]中。这里提供的升级版本具有相同的可扩展性,并在一系列不同的HPC系统上保持一致的性能,而无需对源代码进行任何GPU加速版本的性能在两个基于Volta架构的NVIDIA显卡上进行了测试:Titan V和Tesla V100(图1)。2)的情况。每个时间步的运行时间在两张卡上被发现在很大范围的问题大小上是相似的。GPU版本与在一个节点上运行的HPS版本相比的速度提升在以下方面有所不同:系数为3和17,取决于问题的大小和用作参考的平台的特定选择。将单个GPU运行与在单个CPU节点上运行的MPI-OpenMP进行比较是一个合理的UPS在价格和电力消耗方面大致相当。然而,16个节点(256个核心)是必要的,以超过GPU版本的小问题。目前,适用于GPU版本的最大问题大小受到显卡上可用RAM数量的2.4. 数据分析和可视化在nsCouette中,频谱系数和原始变量以用户指定的输出间隔转储到每个时间步的单独文件。它实现了一个易于使用的检查点重新启动机制的基础上,处理长期运行的DNS的系数。原始变量uθ,uz)、压力(p)和可选的温度(T)图二. 与MPI-OpenMP版本相比,nsCouette的GPU加速版本的性能。不同自由度(DOF)数的时间步长。GPU代码在一个NVIDIA Titan V和一个Tesla V100图形卡上运行。它使用NVIDIA的CUDA工具包10.1版本构建 混合代码使用英特尔的PSXE 2018构建不同的平台。BDW:Intel Xeon E5- 2620 v4(Broadwell),16核/节点,Mellanox InfiniBand FDR网络(56 Gbit s-1)。SKL:Intel Xeon 6148(Skylake),40核/节点。 实(虚线)线表示N r64(N r128)径向点。比如ParaView和VisIt这两个工具都允许加载nsCouette生成的xdmf文件序列。基于VisIt的Python接口的示例脚本,以及用于处理圆柱坐标系的定制ParaView用户指南中包含详细的可视化教程这使得用户能够轻松地对流场进行全面的可视化和定量分析。2.5. 质量保证nsCouette的验证和确认(V和V)记录在[5]中。为了保持源代码的正确性,我们广泛使用了持续集成(CI)技术4J.M. López,D.Feldmann,M.Rampp等人粤公网安备44010802000011号=-≈=-==图三. 对 于 固定的内筒旋转(Re i),随着瑞利数(Ra)的增加,内筒壁处的努塞尔数(Nu i)和间隙中部位置处的流向速度分量(uθ)的时间演变50)。每个Ra的最终流动状态通过瞬时温度等值面(T0),其通过壁法向速度分量(Ur)的向内/向外(蓝色/红色)的值进行颜色编码。(For在这篇文章中,图注,读者可参阅本文的网页版gitlab的功能每次推送到存储库时,都会自动触发一些回归测试,包括在各种配置中构建代码以及使用Forcheck工具进行静态代码分析。此外,许多短测试运行使用运行时检查和编译器的最严格调试设置自动启动,以识别未定义的变量,越界错误等。数值结果,然后严格验证先前记录的参考运行。最后的验证运行将模拟波浪涡流的波速与实验确定的值[12]进行比较,如果波速匹配到10−4,则认为是成功的。整个CI配置、每次推送的验证和确认结果以及自动生成的源代码文档(Ford)-包括依赖关系和调用图-可通过我们的开发人员3. 说明性示例热的旋转圆柱体和冷却的静止外壳之间的流体流动是研究许多工程应用中的热传递的简单模型[13],例如旋转机械的冷却[14]。在低角速度(Rei)和小温差(Ra)下,热传递是纯传导的。在这种简单的情况下,称为基本状态,控制方程允许uθ和T的解析解,它们只依赖于r。可以通过增加Rei(强制对流)或通过增加Ra(自然对流)来增强热传递。在这两种情况下,基本状态表现出一系列不同的不稳定性,最终导致湍流传热[15]。效率的度量由努塞尔数(Nui)给出,努塞尔数是内筒处的总热传递的比率,其由相同温差下的基本状态的热传递图 3总结了使用nsCouette在固定转速下随温差增加的三个DNS的结果。第一个DNS是通过对Rei50和Ra2130处的基态施加小的单次谐波扰动来初始化的。图3a示出了初始Nui1,对应于纯传导热传递。然而,在大约两个粘性时间单位之后,观察到Nui的急剧增加,表明基态已变得不稳定。这一点可以通过计算域中固定探头位置处u θ的时间序列得到证实(图2)。3b)。该运行的最终状态如图所示。3C.它显示了用ParaView生成的T0等值面的三维渲染。螺旋流模式以恒定的速度旋转而不改变其形状;就像理发师的杆子。它反复通过探头位置,这解释了为什么u θ信号达到周期性状态(2. 5 d2/v>t> 3。5d2/v)。它的恒定形状解释了为什么积分热通量(Nui)在另一方面同时保持恒定。第二个和第三个DNS是用前一次运行的最终状态初始化的,并分别将瑞利数增加到Ra2840和3550。图3中的时间序列和最终状态显示,TC系统经历了一系列到不同流状态的转变,随着Ra的增加,时空复杂度增加。这些示例和其他示例都记录在用户指南的教程部分4. 影响我们的软件完成了公开可用的Navier-Stokes求解器列表它可以快速安装并由对模式形成和混沌感兴趣的研究人员有效使用,TC流长期以来一直是一种范式[17]。第3节的示例可以在笔记本电脑中运行,旨在说明如何轻松获得和分析结果。然而,我们强调,提供nsCouette的主要目的是是使一个完全并行和高度可扩展的DNS代码的全部潜力易于使用,因此,对广泛的科学界有价值。它使在HPC和DNS方面缺乏经验的用户在其他软件设计选择中,这是通过提供用户友好的构建过程来实现的,该过程支持许多预配置的HPC架构、所有控制参数的轻松运行时处理、定制的可视化工具、全面的用户指南和全面的内部质量保证。因此,nsCouette是研究强湍流剪切流例如,它已经促成了一个赌注-天文物理学[18]和地球物理学[19,20]流动的术语理解。J.M. López,D.Feldmann,M.Rampp等人粤公网安备44010802000011号5由于其模块化结构,它密切遵循数值公式,其适度的代码复杂性(特别是HPS),新的功能可以很容易地添加到nsCouette,与给定的算法领域的知识和基本的编程技能。作为一个例子,我们还提供了nsPipe;一个修改后的版本,用于模拟直管中的流动 。 它 遵 循 openpipeflow 的 数 值 公 式 [11] , 并 使 用nsCouette的并行基础设施,如用户指南中所述。包括聚合物添加剂[21]和两相流[22]建模在内的扩展已经开发和测试,并将在未来发布竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢这项工作得到了马克斯·普朗克学会的支持,并由德国研究基金会(DFG)通过优先计划TurbulentSuperstructures(SPP1881)提供部分资金。AVM由欧洲研究理事会(ERC)通过COTURB项目(ERC-2014.AdG-669505)提供支持。以下机构提供的计算资源得到了充分认可:阿贡领导力计算设施,这是一个DOE科学用户 设 施 办 公 室 ( DE-AC02-06CH11357 ) 。IsambrdUKNationalTier-2HPCService-由GW 4和英国气象局操作,并由EPSRC(EP/P020224/1)资助。进一步的计算是在加尔兴的MPCDF的HPC系统Hydra,Draco和Cobra上进行的引用[1]阿克尔曼·巴齐列夫斯用等几何分析和基于残差的变分多尺度方法对湍流Taylor-Couette流进行大涡模拟。J Comput Phys 2010;229(9):3402-14.http://dx.doi.org/10的网站。1016/j.jcp.2010.01.008。[2]张文辉,张文辉.高雷诺数泰勒-库埃特湍流。Annu Rev Fluid Mech 2016;48( 1 ) : 53-80. http://dx.doi.org/10 的 网 站 。 1146/annurev-fluid-122414-034353。[3]Edlund EM,Ji H.实验室准开普勒流的非线性稳定性。Phys Rev E 2014;89(2)。021004. http://dx.doi.org/10.1103/PhysRevE.89的网站。021004。[4] 放大图片作者:Lopez JM.准开普勒流实验中的边界层湍流。J Fluid Mech2017;817:21-34. http://dx.doi.org/10.1017/[5]张文辉,张文辉,张文辉.伪谱模拟的混合 MPI-OpenMP并行实现及其在Taylor-Couette 流 中 的 应 用 。 ComputFluids2015;106 : 1-11.http://dx.doi.org/10.1016/j的网站。compfluid.2014.09.021网站。[6][10]杨文,李文,李文.具有外加方位磁场的Taylor-Couette流向磁旋转湍流的转 变 。 New J Phys 2015;17 ( 9 ) . 093018. http://dx.doi.org/10.1088/1367-2630/17/www.example.com[7]放大图片作者:Lopez JM,Marques F.快速旋转流中的Boussinesq近似。JFluidMech2013;737 : 56-77.http://dx.doi.org/10.1017/jfm 的 网 站 。2013.558。[8]Gabriel E,Fagg GE,Bosilca G,Angskun T,Dongarra JJ,Squyres JM,Sahay V , Kambadur P , Barrett B , Lumsdaine A , Castain RH , DanielDJ,Graham RL,Woodall TS.开放MPI:下一代MPI实现的目标、概念和设计。In:Kranzlmüller D,Kacsuk P,Dongarra J,editors.并行虚拟机和消息传递接口的最新进展。计算机科学讲义,第3241卷,柏林,海德堡:Springer;2004年,第97-104页。http://dx.doi.org/10.1007/978-3-540-30218-6_19网站。[9]FrigoM , JohnsonS.FFTW3. ProcIEEE2005;93 ( 2 ) : 216-31.http://dx.doi.org/10.1109/JPROC.2004.840301网站。[10][10]杨文军,李文军,李文军.恩斯库埃特的极端缩放,伪 频谱DNS代码在:内部:创新的超级计算在德国,卷。12个。(2):2014,p.48比50[11] WillisAPOpenPipeflowSoftwareX2017;6:124http://dx.doi.org/10.1016/j.softx.2017.05.003网站。[12]King GP,Lee W,Li Y,Swinney HL,Marcus PS.波浪泰勒涡流中的波速。流 体 机 械 杂 志 1984;141 : 365-90.http://dx.doi.org/10 的 网 站 。1017/S0022112084000896.[13] 阿里·M,魏德曼警局具有径向加热的圆形库埃特流的稳定性。流体机械杂志1990;220:53-84. http://dx.doi.org/10.1017/S0022112090003184.[14]Howey DA,Childs PRN,Holmes AS.旋转电机中的气隙对流IEEE TransIndElectron2012;59(3):1367-75.http://dx.doi.org/10.1109/TIE.2010.2100337。[15] 放大图片作者:Lopez JM,Marques F.流体在差动加热和旋转圆柱体之间流动时的传导和对流传热。Int J Heat Mass Transfer 2015;90:959-67.http://dx.doi.org/10.1016/j的网站。ijheatmasstransfer.2015.07.026网站。[16]吉布森JF。C++中的光谱Navier-Stokes模拟器。Tech. 代表,新罕布什尔大学;2014年,www.channelflow.org。[17]杨文辉,陈文辉.- 为 软 物质 科 学 家 介绍 泰 勒 -库 埃 特流 。 软 物 质 2014;10 ( 20 ) : 3523.http://dx.doi.org/10.1039/c3sm52828f网站。[18]Shi L,Hof B,Rampp M,Avila M.准开普勒旋转流中的流体动力学湍流。Phys Fluids 2017;29(4). 044107. http://dx.doi.org/10.1063/1.4981525.[19]Leclercq C,Parabel JL,Augier P,Caulfield C-CP,Dalabel SB,LindenPF.分层Taylor-Couette流中的非线性波。部分1.层形成。2016年,arXiv:1609.02885。[20]李文,等.层流中的非线性波动.北京:清华大学出版社,2001.部分2.浮力通量。2016年,arXiv:1609.02886。[21]Lopez JM,Choueiri GH,Hof B.最大减阻极限下低雷诺数粘弹性管流动力学。J Fluid Mech 2019;874:699-719. http://dx.doi.org/10.1017/jfm.2019.486网站。[22]放大图片作者:Lopez JM,Avila M.核-环管流的相场模拟。Int J MultiphFlow2019;117:14-24.http://dx.doi.org/10.1016/j的网站。ijmultiphaseflow.2019.04.027网站。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功