×

计算流体动力学应用程序的生产力、性能和可移植性。 (英语) Zbl 1519.76002号

总结:过去十年的硬件趋势表明,高性能计算架构的复杂性和异构性不断增加,这给CFD应用程序的开发人员带来了三个关键挑战;需要实现良好的性能,能够通过便携性使用当前和未来的硬件,并以高效的方式使用。在使用传统编程方法时,这三种方法似乎相互矛盾,但近年来,模板库和领域特定语言等几种策略已成为一种潜在的解决方案;通过放弃一般性并专注于更窄的问题领域,这三个目标都可以实现。
本文概述了为CFD应用程序提供性能、可移植性和生产力的最新技术,从允许对PDE进行符号描述的高级库到针对单个算法模式的低级技术。我们讨论了使用每种方法的优势和挑战,并回顾了性能基准测试文献,其中比较了硬件体系结构的实现及其编程方法,概述了关键应用程序及其比较性能。

MSC公司:

76-04 流体力学相关问题的软件、源代码等
65日元10 特定类别建筑的数值算法
76M20码 有限差分方法在流体力学问题中的应用
PDF格式BibTeX公司 XML格式引用
全文: 内政部 链接

参考文献:

[1] Patterson,D.,《多核问题》,IEEE Spectr,47,7,28-32(2010)
[2] Asanović,K。;博迪克,R。;卡坦扎罗,公元前。;Gebis,J.J。;丈夫,P。;Keutzer,K.,《并行计算研究的前景:来自伯克利的观点》,技术代表(2006),加州大学伯克利分校EECS系
[3] 阿利米尔扎扎德,S。;Jahanbakhsh,E。;Maertens,A。;莱吉扎姆翁(Leguizamón,S.)。;Avellan,F.,GPU加速三维有限体积粒子方法,计算流体,171,79-93(2018)·Zbl 1410.65337号
[4] 医学硕士迪亚兹。;Solovchuk,M.A。;Sheu,T.W.,描述均匀热粘性介质中非线性声波的高性能多GPU解算器,计算流体,173195-205(2018)·Zbl 1410.76283号
[5] Gorobets,A。;Soukov,S。;Bogdanov,P.,在大多数混合超级计算机上模拟可压缩湍流的多级并行化,计算流体,173171-177(2018)·Zbl 1410.76229号
[6] 任,F。;Song,B。;Zhang,Y。;Hu,H.,基于Lattice Boltzmann方法的湍流和标量输运GPU加速求解器,计算流体,173,29-36(2018)·Zbl 1410.76047号
[7] 刘,R.K.-S。;吴,C.-T。;N.S.-C.高。;Sheu,T.W.-H.,用多GPU上的CUDA编程模拟不可压缩Navier-Stokes流的改进混合拉格朗日-欧拉(IMLE)方法,计算流体,18499-106(2019)·Zbl 1411.76103号
[8] Lee,Y.-H。;黄,L.-M。;邹永胜。;黄,S.-C。;Lin,C.-A.,在GPU集群上用格子Boltzmann方法模拟湍流管道流动,计算流体,168,14-20(2018)·Zbl 1390.76736号
[9] 桥本,T。;Yasuda,T。;塔诺,I。;田中,Y。;森西,K。;Satofuka,N.,使用动力学简化的局部navier-Stokes方程对非定常不可压缩流进行Multi-GPU并行计算,计算流体,167,215-220(2018)·Zbl 1390.76571号
[10] N.S.-C.高。;Sheu,T.W.-H.,在多个GPU卡上求解三维不可压缩Navier-Stokes解的有限元流动求解器的开发,计算流体,167,285-291(2018)·Zbl 1390.76327号
[11] 辛格,J.P。;Hennessy,J.L.,《自动并行化的有效性和局限性的实证研究》,共享内存多处理,203-207(1992)
[12] Wong M.、Richards A.、Rovatsou M.、Reyes R.Khronos的OpenCL SYCL支持C++的异构设备。2016
[13] 规则,S。;Vandierendonck,H。;D'Haene,J。;De Bosschere,K.,关于OpenCL内核性能可移植性的实验研究,2010年高性能计算应用加速器研讨会(SAAHPC’10)(2010)
[14] 小松,K。;佐藤,K。;Arai,Y。;Koyama,K。;Takizawa,H。;Kobayashi,H.,评估OpenCL程序的性能和可移植性,第五届自动性能调优国际研讨会,66,1(2010)
[15] 彭尼库克,S.J。;哈蒙德,S.D。;赖特,S.A。;赫德曼,J。;I.米勒。;Jarvis,S.A.,《OpenCL性能可移植性研究》,J Parallel Distrib Compute,73,11,1439-1450(2013)
[16] 官方消息:2021年,Aurora有望成为美国第一台Exascale计算机。2019https://www.hpcwire.com/2019/03/18/its-official-aurora-on-track-to-be-first-u-s-exascale-computer-in-2021/。
[17] 何,Q。;陈,H。;Feng,J.,使用图形处理单元加速基于OpenFOAM的MHD解算器,Fusion Eng Design,101,88-93(2015)
[18] Malecha,Z。;Mirosław,Ł。;托姆扎克,T。;科扎,Z。;马蒂卡,M。;Tarnawski,W.,使用OpenFOAM基于GPU的腹主动脉三维血流模拟,Arch Mech,63,2,137-161(2011)·Zbl 1301.76086号
[19] Heroux,医学硕士。;Bartlett,R.A。;豪尔,V.E。;霍克斯特拉,R.J。;胡,J.J。;Kolda,T.G.,Trilinos项目概述,ACM Trans Math Softw(TOMS),31,3,397-423(2005)·Zbl 1136.65354号
[20] Hoemmen,M.F.,《Trilinos线性代数和求解器中当前线程并行化工作的总结》。,技术代表(2017),Sandia National Lab.(SNL-NM),新墨西哥州阿尔伯克基(美国)
[21] Balay S.、Abhyankar S.、Adams M.F.、Brown J.、Brune P.、Buschelman K.等。PETSc网页。2019http://www.mcs.anl.gov/petsc; http://www.mcs.anl.gov/petsc。
[22] Anderson,E。;Bai,Z。;比肖夫,C。;南卡罗来纳州布莱克福德。;德梅尔,J。;Dongarra,J.,《LAPACK用户指南》(1999年),工业和应用数学学会:宾夕法尼亚州费城工业和应用算术学会·Zbl 0934.65030号
[23] 布莱克福德,L.S。;Choi,J。;克利里,A。;D’Azevedo,E。;德梅尔,J。;Dhillon,I.,《ScaLAPACK用户指南》(1997),工业和应用数学学会:工业与应用数学学会,宾夕法尼亚州费城·兹伯利0886.65022
[24] Buttari,A。;兰古,J。;Kurzak,J。;Dongarra,J.,多核架构的一类并行分片线性代数算法,并行计算,35,1,38-53(2009)
[25] 托莫夫,S。;Dongarra,J。;Baboulin,M.,面向混合GPU加速多核系统的稠密线性代数,并行计算,36,5-6,232-240(2010)·Zbl 1204.68268号
[26] 桑德森,C。;Curtin,R.,Armadillo:一个基于模板的线性代数C++库,J Open Source Softw,1,2,26(2016)
[27] Guennebaud G.、Jacob B.等人,Eigen v3。2010http://eigen.tuxfamily.org。
[28] Davis T.、Hager W.、Duff I.SuiteSparse。2014http://faculty.cse.tamu.edu/davis/suitesparse.html。
[29] R·D·法尔古特。;Jones,J.E。;Yang,U.M.,并行高性能预处理程序库hypre的设计与实现,并行计算机上偏微分方程的数值解,267-294(2006),Springer·Zbl 1097.65059号
[30] Notay,Y.,《一种基于聚合的代数多重网格方法》,《电子传递数值分析》,37,6,123-146(2010)·Zbl 1206.65133号
[31] Naumov,M。;阿萨耶夫,M。;卡斯通圭,P。;科恩,J。;J·德茅斯。;Eaton,J.,AmgX:GPU加速代数多重网格和预处理迭代方法库,SIAM科学计算杂志,37,5,S602-S626(2015)·Zbl 1325.65065号
[32] Gupta,A.,WSMP:Watson稀疏矩阵包(第一部分:对称稀疏系统的直接求解),技术代表RC 21886(2000),IBM TJ Watson研究中心,纽约州约克敦高地
[33] Li,X.S.,《超级逻辑单元概述:算法、实现和用户界面》,ACM Trans Math Softw,31,3,302-325(2005)·Zbl 1136.65312号
[34] Hénon,P。;Ramet,P。;Roman,J.,PaStiX:稀疏对称定系统的高性能并行直接求解器,并行计算,28,2,301-321(2002)·Zbl 0984.68208号
[35] 中华人民共和国埃姆斯泰。;达夫,I.S。;L'Excellent,J.-Y。;Koster,J.,MUMPS:通用分布式内存稀疏解算器,应用并行计算国际研讨会,121-130(2000),Springer
[36] Raghavan,P.,DSCPACK:求解稀疏线性系统的域分离器代码,技术代表(2002),技术代表CSE-02-004。香港中文大学计算机科学与工程系。。。
[37] 圣保罗。;Vuduc,R。;Li,X.S.,《分布式CPU-GPU稀疏直接求解器》(Silva,F.;Dutra,I.;Santos-Costa,V.,《2014年欧洲-巴黎并行处理》(2014),Springer International Publishing:Springer国际出版公司Cham),487-498
[38] https://hal.inia.fr/hal-00700066。
[39] Plauger,P。;李,M。;穆瑟,D。;Stepanov,A.A.,C++标准模板库(2000),普伦蒂斯·霍尔PTR:普伦蒂斯霍尔PTR Upper Saddle River,NJ,USA
[40] Schling,B.,《增强C++库》(2011),XML出版社
[41] Kaiser H.、Lelbach B.A.、Heller T.、BergéA.、Simberg M.、Biddescobe J.等人。STEllAR GROUP/hpx:hpx V1.2.1:并行和并发的C++标准库。2019https://doi.org/10.5281/zenodo.2573213。
[42] 用于高性能计算的领域特定语言和高级框架。doi:10.1016/j.jpdc.2014.07.003。
[43] Hornung,R。;琼斯,H。;Keasler,J。;尼利·R。;皮尔斯,O。;Hammond,S.,《2015年ASC三线合作设计2级里程碑报告》,技术代表(2015年),劳伦斯·利弗莫尔国家实验室(LLNL),加利福尼亚州利弗莫尔市(美国)
[44] Hoberock J.,Bell N.,《推力:并行模板库》。2010http://code.google.com/p/thrust/。
[45] Enmyren,J。;Kessler,C.W.,《SkePU:一个用于多GPU系统的多后端Skeleton编程库》,《第四届高级并行编程和应用国际研讨会论文集》,HLPP’10,5-14(2010),ACM:美国纽约州纽约市ACM
[46] doi:10.1002/9781119332015.ch13。
[47] Ernsting,S。;Kuchen,H.,《多核、多GPU系统和集群的算法框架》,《国际高性能计算网络》,7,2,129-138(2012)
[48] Steuwer,M。;凯格尔,P。;Gorlatch,S.,SkelCL——用于高级GPU编程的便携式骨架库,2011年IEEE并行和分布式处理研讨会国际研讨会和博士论坛,1176-1182(2011)
[49] 查克拉瓦蒂,M.M.T。;凯勒,G。;Lee,S。;McDonell,T.L。;Grover,V.,用多核GPU加速Haskell数组代码,DAMP’11:多核编程声明性方面的第六次研讨会(2011),ACM
[50] 凯勒,G。;查克拉瓦蒂,M.M。;Leshchinskiy,R。;佩顿·琼斯,S。;Lippmeier,B.,《规则,形状多态,haskell中的并行阵列》,SIGPLAN Not,45,9,261-272(2010)·Zbl 1323.68127号
[51] Ruiz A.《hmatrix简介》,2012年。
[52] 德维托,Z。;Joubert,N。;帕拉西奥斯,F。;奥克利,S。;麦地那,M。;Barrientos,M.,Liszt:构建基于网格的便携式PDE解算器的领域特定语言,2011年高性能计算、网络、存储和分析国际会议论文集,9(2011),ACM
[53] 伯恩斯坦,G.L。;沙阿,C。;莱米尔,C。;德维托,Z。;费希尔,M。;Levis,P.,Ebb:CPU和GPU物理模拟的DSL,ACM Trans Graph,35,2(2016),21:1-21:12
[54] 厄尔,C。;米特·M。;巴古塞蒂,A。;Sutherland,J.C.,Nebo:数值求解偏微分方程的高效、并行和可移植的特定领域语言,J Syst Softw,125,389-400(2017)
[55] Ragan-Kelley,J。;巴恩斯,C。;亚当斯。;美国巴黎。;杜兰德,F。;Amarasinghe,S.,Halide:图像处理管道中用于优化并行性、局部性和重新计算的语言和编译器,第34届ACM SIGPLAN编程语言设计和实现会议论文集,PLDI’13,519-530(2013),ACM:ACM纽约,纽约,美国
[56] Mostafazadeh,B。;Marti,F。;刘,F。;Chandramowlishwaran,A.,Roofline指导下的多核性能多级CFD求解器的设计和分析,2018 IEEE国际并行和分布式处理研讨会(IPDPS),753-762(2018)
[57] Yount,C。;托宾,J。;布鲁尔,A。;Duran,A.,Yaskyet《另一个模板内核:HPC模板代码生成和调优框架》,2016年第六届领域特定语言和高性能计算高级框架国际研讨会(WOLFHPC),30-39(2016)
[58] http://dl.acm.org/citation.cfm?id=2867549.2868136。
[59] e4062 e4062 cpe.4062 doi:10.1002/cpe.4062。
[60] Zhao,T。;威廉姆斯。;霍尔,M。;Johansen,H.,《使用积木在cpu和GPU上进行性能便携式模板计算》,2018 IEEE/ACM HPC(P3HPC)性能、便携性和生产力国际研讨会,59-70(2018)
[61] Mudalige,G.R。;贾尔斯,M.B。;Reguly,I。;贝尔托利,C。;Kelly,P.H.J.,OP2:在多核和多核架构上解决非结构化网格应用程序的主动库框架,2012创新并行计算(InPar),1-12(2012)
[62] Rathgeber,F。;Markall,G.R。;米切尔,L。;北卡罗莱恩。;Ham,D.A。;Bertolli,C.,PyOP2:非结构化网格上性能可移植模拟的高级框架,2012 SC伴侣:高性能计算、网络存储和分析,1116-1123(2012),IEEE
[63] Incardona,P。;Leo,A。;扎卢日尼,Y。;Ramaswamy,R。;Sbalzarini,I.F.,《OpenFPM:并行计算机上粒子和粒子码的可扩展开放框架》,《计算物理通讯》,24115-177(2019)
[64] http://superri.org/superfri/article/view/17。
[65] PSyclone项目。2018http://psyclone.readthedocs.io/。
[66] 巴尔达夫,M。;塞弗特,A。;Förstner,J。;Majewski,D。;Raschendorfer,M。;Reinhardt,T.,《使用COSMO模型进行对流尺度数值天气预报:描述和敏感性》,《Mon weather Rev》,139、12、3887-3905(2011)
[67] 克莱门特,V。;费拉查特,S。;福勒,O。;拉皮隆,X。;Osuna,C.E。;Pincus,R.,《CLAW DSL:性能便携式天气和气候模型摘要》,高级科学计算会议平台论文集,PASC’18(2018),ACM:美国纽约州纽约市ACM,2:1-2:10
[68] Clément,V。;马蒂,P。;福勒,O。;Sawyer,W.,《GPU和CPU与ICON全球气候模型的性能可移植性》,EGU大会摘要。EGU大会会议摘要,EGU大会摘要,20,13435(2018)
[69] Alns,医学硕士。;布莱希塔,J。;Hake,J。;Johansson,A。;Kehlet,B。;Logg,A.,《FEniCS项目1.5版》,Arch Numer Softw,3100(2015)
[70] Rathgeber,F。;Ham,D.A。;米切尔,L。;兰格,M。;卢波里尼,F。;Mcrae,A.T.T.,Firedrake:通过组合抽象实现有限元方法自动化,ACM Trans Math Softw,43,3(2016),24:1-24:27·Zbl 1396.65144号
[71] Lengauer,C.等人。;阿佩尔,S。;博尔顿,M。;Grßlinger,A。;Hannig,F。;Köstler,H.,ExaStencils:advanced stencil code engineering,(Lopes,L.;Žilinskas,J.;Costan,A.;Cascella,R.G.;Kecskemeti,G.;Jeannot,E.;etal.,《2014年欧洲-太平洋地区:并行处理研讨会》(2014年),施普林格国际出版公司:施普林格(Springer)国际出版公司,553-564
[72] 马西娅,S。;马特奥,S。;马丁内斯·费雷尔,P.J。;贝尔特兰,V。;米拉·D·。;Ayguadé,E.,Saiph:走向高性能计算流体动力学的DSL,2018年真实世界领域特定语言研讨会论文集,RWDSL2018(2018),ACM:ACM纽约,纽约,美国,6:1-6:10
[73] Rink,N.A。;惠斯曼,I。;Susungi,A。;Castrillon,J。;斯蒂勒,J。;Fröhlich,J.,Cfdlang:流体动力学中高阶方法的高级代码生成,2018年真实世界领域特定语言研讨会论文集,RWDSL2018(2018),ACM:ACM纽约,纽约,美国,5:1-5:10
[74] 巴斯蒂安,P。;布拉特,M。;A.德纳。;恩格尔,C。;Klöfkorn,R。;Ohlberger,M.,用于并行和自适应科学计算的通用网格接口。第一部分:抽象框架,计算,82,2103-119(2008)·Zbl 1151.65089号
[75] Lusher,D.J。;Jammy,S.P。;Sandham,N.D.,自动源代码生成框架OpenSBLI中的冲击波/边界层交互,计算流体,173,17-21(2018)·Zbl 1410.76299号
[76] 兰格,M。;北卡罗来纳州库克雷贾。;卢布托,M。;卢波里尼,F。;维埃拉,F。;Pandolfo,V.,Devito:使用符号python实现通用有限差分DSL,2016年第六届高性能科学计算python研讨会(PyHPC),67-75(2016)
[77] 威廉姆斯。;沃特曼,A。;Patterson,D.,《Roofline:浮点程序和多核体系结构的一个富有洞察力的可视化性能模型》,技术代表(2009),劳伦斯伯克利国家实验室(LBNL),加利福尼亚州伯克利(美国)
[78] 宾夕法尼亚州立大学。;苏厄尔,J.D。;Lee,V.W.,《性能可移植性指标的含义》,《未来一代计算系统》,92947-958(2017)
[79] 哈雷尔,S.L。;Kitson,J。;伯德·R。;彭尼库克,S.J。;苏厄尔,J。;Jacobsen,D.,有效性能可移植性,2018 IEEE/ACM HPC(P3HPC)性能、可移植性和生产力国际研讨会,24-36(2018)
[80] 英特尔。代码库调查员。https://github.com/intel/code-base-insearch。
[81] McIntosh-Smith,S.,《不同计算机体系结构的性能可移植性》,P3MA:第四届多核或加速器性能可移植编程模型国际研讨会(2019)
[82] 里格利,I.Z。;Mudalige,G.R。;Giles,M.B.,《运行时使用OPS在大规模模具代码中进行循环平铺》,IEEE Trans Parallel Distribute Syst,29,4,873-886(2018)
[83] Siklosi,B。;里格利,I.Z。;Mudalige,G.R.,模板应用的异构CPU-GPU执行,2018 IEEE/ACM HPC性能、便携性和生产力国际研讨会(P3HPC),71-80(2018)
[84] 法律,T.R。;Kevis,R。;鲍威尔,S。;Dickson,J。;Maheswaran,S。;赫德曼,J.A。;Jarvis,S.A.,非结构化流体动力学微型应用的性能可移植性,2018 IEEE/ACM HPC性能、可移植性和生产率国际研讨会(P3HPC),0-12(2018)
[85] R.O.柯克。;Mudalige,G.R。;里格利,I.Z。;赖特,S.A。;马蒂诺,M.J。;Jarvis,S.A.,《在现代多核系统上实现热传导求解器微型应用的性能可移植性》,2017年IEEE集群计算国际会议(cluster),834-841(2017)
[86] Sudheer Chunduri,S.P。;Rahman,R.,Nekbone性能可移植性,2017年DOE COE性能可移植会议(2017年)
[87] Ferenbaugh,C.R.,《PENNANT小型应用程序中的粗线程与细线程》,2016年DOE COE性能可移植性会议(2016年)
[88] 布鲁尼尼,V。;克劳森,J。;霍姆曼,M。;库卡拉,A。;菲利普斯,M。;Trott,C.,面向性能便携SIERRA/aria的进展,2019年能源部性能、便携性和生产力年会(2019年)
[89] Stan Moore,A.S.,使用Kokkos在SPARTA中获得线程性能可移植性,2019年DOE性能、可移植性和生产力年会(2019年)
[90] 沃特金斯,J。;特泽尔,I。;Demeshko,I.,《Albany Land Ice求解器内有限元装配过程的性能可移植性研究》,2019年DOE性能、可移植性和生产力年会(2019年)
[91] Howard,M.,下一代平台SPARC sandias高超音速CFD代码的性能可移植性,2017年DOE COE性能可移植会议(2017年)
[92] 霍华德,M。;费希尔,T.C。;霍姆曼,M.F。;Dinzl,D.J。;Overfelt,J.R。;Bradley,A.M.,在下一代高性能计算平台上大规模使用CFD的多级并行。,第十届国际计算流体力学会议(ICCFD10)(2018)
[93] 霍尔曼,J.K。;汉弗莱,A。;桑德兰,D。;Berzins,M.,通过使用基于Kokkos的便携式数据并行任务提高uintah的可扩展性,2017年高级研究计算实践与经验论文集,可持续性、成功和影响,27(2017),美国计算机学会
[94] Padioleau,T。;Tremblin,P。;审计,E。;Kestener,P。;Kokh,S.,一个具有良好平衡重力的高性能便携式全马赫流态解算器代码。可压缩对流的应用,天体物理学J,875,2,128(2019)
[95] 普雷兹,F.E.H。;Mukhadiyev,N。;Xu,X。;母猪,A。;Lee,B.J。;Sankaran,R.,使用多核/GPU加速度对具有详细化学性质的反应流进行直接数值模拟,计算流体,173,73-79(2018)·Zbl 1410.76466号
[96] David Beckingsale Johann Dahm,P.W.,Porting SAMRAI to sierra,2019年能源部性能、便携性和生产力年会(2019年)
[97] Pearce,O.,《探索多物理仿真中异构架构的利用选项》,《并行计算》,第87期,第35-45页(2019年)
[98] 穆达利奇,G。;Reguly,I。;查米,S。;雅各布斯,C。;贾尔斯,M。;Sandham,N.,基于DSL的多块结构网格直接数值模拟应用程序的大尺度性能,J Parallel Distrib Compute,131130-146(2019)
[99] 里格利,I.Z。;贾尔斯,D。;戈皮纳坦,D。;基维,L。;贝克,J.H。;Giles,M.B.,《VOLNA-OP2海啸规范》(1.5版),Geosci Model Dev,11,11,4621-4635(2018)
[100] 里格利,I.Z。;Mudalige,G.R。;伯托利,C。;贾尔斯,M.B。;Betts,A。;Kelly,P.H.J.,利用OP2加速全规模工业CFD应用,IEEE Trans Parallel Distribute Syst,27,5,1265-1278(2016)
[101] Mudalige,G.R。;里格利,I.Z。;Giles,M.B.,《大规模生产非结构化网格CFD应用的自动矢量化》,SIMD/矢量处理编程模型第三次研讨会论文集,WPMVP’16(2016),ACM:美国纽约州纽约市ACM,5:1-5:8
[102] 特鲁比,D。;赖特,S。;Kevis,R。;Maheswaran,S。;Herdman,A。;Jarvis,S.,BookLeaf:一个非结构化流体动力学迷你应用程序,2018 IEEE集群计算国际会议(cluster),615-622(2018)
[103] TeaLeaf:英国小型应用财团。2015https://github.com/UK-MAC/TeaLeaf。
[104] Daley,C.,通过微基准评估GPU上的OpenMP性能,2019年DOE性能、便携性和生产力年会(2019年)
[105] OP-DSL:牛津并行领域特定语言。2015https://op-dsl.github.io。
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。