跳到主要内容
研究论文

现代建筑中高性能间断Galerkin方法的代码自动生成

出版:2020年12月8日出版历史
跳过抽象节

摘要

SIMD矢量化最近已成为高性能计算中的一个关键挑战。然而,手写的显式矢量化代码往往会对软件的可持续性构成威胁。在本出版物中,我们通过使用代码生成方法丰富模拟框架沙丘-三角实验室来解决这个可持续性和性能可移植性问题。该方法基于众所周知的特定于域的语言UFL,但将其与loopy相结合,loopy是计算内核的一种更强大的中间表示。基于这种灵活的工具,我们提出并实现了一类新的矢量化策略,用于利用有限元张量积结构在六面体网格上组装间断Galerkin方法。该类的性能最佳变体由代码生成器通过自动调整方法选择。该实现是在开源PDE软件框架Dune和离散化模块dun-pdelab中完成的。通过对标量扩散反应方程和Stokes方程的DG格式的性能测量,说明了该方法的优点。在我们的测量中,我们同时使用AVX2和AVX512指令集,对于操作员的一个无矩阵应用程序,实现了机器理论峰值性能的30%到40%。

工具书类

  1. Ahmad Abdelfattah、Marc Baboulin、Veselin Dobrev、Jack Dongarra、A.Haidar、I.Karlin、Tz Kolev、I.Masliah和S.Tomov。[2017]. 高阶应用高级架构上的小型张量操作。技术报告。技术报告UT-EECS-17-749。谷歌学者谷歌学者
  2. Ahmad Abdelfattah、Azzam Haidar、Stanimire Tomov和Jack Dongarra。2016.GPU成批GEMM的性能、设计和自动调整。高性能计算国际会议论文集。施普林格,21-38。谷歌学者谷歌学者交叉引用交叉引用
  3. 马克·安斯沃思(Mark Ainsworth)、盖尔·安德里亚马罗(Gaelle Andriamaro)和奥列格·达维多夫(Oleg Davydov)。2011.任意阶Bernstein–Bézier有限元和最佳装配程序。SIAM J.科学。计算。33, 6 (2011), 3087--3109.谷歌学者谷歌学者数字图书馆数字图书馆
  4. Martin S.AlnS、Anders Logg、Kristian B.Ølgaard、Marie E.Rognes和Garth N.Wells。2014.统一形式语言:偏微分方程弱公式的领域特定语言。ACM事务处理。数学。柔和。40, 2 (2014), 9.谷歌学者谷歌学者数字图书馆数字图书馆
  5. Martin S.AlnS、Anders Logg、Kristian B.Ølgaard、Marie E.Rognes和Garth N.Wells。2014.统一形式语言:偏微分方程弱公式的特定领域语言。ACM事务处理。数学。柔和。40, 2 (2014). 内政部:https://doi.org/10.1145/2566630谷歌学者谷歌学者数字图书馆数字图书馆
  6. W.Bangerth、R.Hartmann和G.Kanschat。2007年交易。II-一个通用的面向对象的有限元库。ACM事务处理。数学。柔和。33, 4 (2007), 24/1–24/27.谷歌学者谷歌学者数字图书馆数字图书馆
  7. 彼得·巴斯蒂安(Peter Bastian)。2014.多孔介质中具有不连续毛细管压力的两相流的完全耦合不连续Galerkin方法。计算。地质科学。18, 5 (2014), 779--796. 内政部:https://doi.org/10.1007/s10596-014-9426-y谷歌学者谷歌学者交叉引用交叉引用
  8. P.Bastian、K.Birken、K.Johannsen、S.Lang、N.Neu、H.Rentz-Reichert和C.Wieners。UG-求解偏微分方程的灵活软件工具箱。计算。目视检查。科学。第1、1页(1997年1月),第27至40页。内政部:https://doi.org/10.1007/s007910050003谷歌学者谷歌学者交叉引用交叉引用
  9. 彼得·巴斯蒂安(Peter Bastian)、马库斯·布拉特(Markus Blatt)、安德烈亚斯·德纳(Andreas Dedner)、克里斯蒂安·恩格尔(Christian Engwer)、罗伯特·克洛夫科恩(Robert Klöfkorn)、拉尔夫·科恩豪伯(Ralf Kornhuber)、马里奥·奥尔伯格。2008年。用于并行和自适应科学计算的通用网格接口。第二部分:DUNE的实现和测试。计算82,2–3(2008),121–138。谷歌学者谷歌学者
  10. 彼得·巴斯蒂安(Peter Bastian)、马库斯·布拉特(Markus Blatt)、安德烈亚斯·德纳(Andreas Dedner)、克里斯蒂安·恩格尔(Christian Engwer)、罗伯特·科伦(Robert Klöfkorn)、马里奥·奥伯格(Mario Ohlberger)和奥利弗·桑德。2008年。用于并行和自适应科学计算的通用网格接口。第一部分:抽象框架。计算82,2–3(2008),103–119。谷歌学者谷歌学者
  11. 彼得·巴斯蒂安(Peter Bastian)、菲利克斯·海曼(Felix Heimann)和斯文·马纳奇(Sven Marnach)。2010年。分布式统一数值环境(DUNE)中有限元方法的通用实现。Kybernetika凯贝内提卡46,2(2010),294--315。谷歌学者谷歌学者
  12. 彼得·巴斯蒂安(Peter Bastian)、艾克·赫尔曼·穆勒(Eike Hermann Müller)、斯蒂芬·穆欣(Steffen Müthing)和玛丽安·皮亚特科夫斯基(Marian Piatkowski)。2019.高阶间断Galerkin离散化的无矩阵多重网格块预条件。J.计算。物理学。394 (2019), 417--439.谷歌学者谷歌学者数字图书馆数字图书馆
  13. Paul E.Buis和Wayne R.Dyksen。1996年。张量积的有效向量和并行操作。ACM事务处理。数学。柔和。22, 1 (1996), 18--23.谷歌学者谷歌学者数字图书馆数字图书馆
  14. B.Cockburn、S.Y.Lin和C.W.Shu(编辑)。2000.间断Galerkin方法。理论、计算和应用。计算科学与工程讲义,第11卷。斯普林格·弗拉格。谷歌学者谷歌学者
  15. 考希克·达塔、马克·墨菲、瓦西里·沃尔科夫、塞缪尔·威廉姆斯、乔纳森·卡特、列奥尼德·奥利克、大卫·帕特森、约翰·沙尔夫和凯瑟琳·叶利克。2008年。在最先进的多核架构上进行模板计算优化和自动调整。ACM/IEEE超级计算会议记录(SC'08)。IEEE出版社,新泽西州皮斯卡塔韦,第4条,12页。检索自http://dl.acm.org/citation.cfm?id=1413370.1413375。谷歌学者谷歌学者数字图书馆数字图书馆
  16. R.H.Dennard、F.H.Gaensslen、H.Yu、V.L.Rideout、E.Bassous和A.R.LeBlanc。1974.具有非常小的物理尺寸的离子注入MOSFET的设计。IEEE J.固态电路。9,5(1974年10月),256-268。内政部:https://doi.org/10.109/JSSC.1974.1050511谷歌学者谷歌学者交叉引用交叉引用
  17. 罗曼·多尔博。2018.每个指令集的理论峰值FLOPS:教程。J.超级计算机。74 (2018), 1341--1377.谷歌学者谷歌学者数字图书馆数字图书馆
  18. Craig C.Douglas、Jonathan Hu、Wolfgang Karl、Markus Kowarschik、Ulrich Rüde和Christian Weiß。2000.多重网格方法的固定和自适应缓存感知算法。柏林施普林格,87-93。内政部:https://doi.org/10.1007/978-3-642-58312-4_11谷歌学者谷歌学者交叉引用交叉引用
  19. 亚历山德雷·厄恩(Alexandre Ern)、安妮特·斯蒂芬森(Annette F.Stephansen)和保罗·祖尼诺(Paolo Zunino)。2009.局部扩散系数较小且各向异性的对流扩散方程的加权平均间断Galerkin方法。IMA J.数字。分析。29, 2 (2009), 235--256.谷歌学者谷歌学者交叉引用交叉引用
  20. 保罗·菲舍尔(Paul Fischer)、米苏恩·敏(Misun Min)、蒂琳娜·拉塔纳亚克(Thilina Rathnayake)、索姆·杜塔(Som Dutta)、扎尼奥·科列夫(Tzanio Kolev)、韦塞林·多布雷夫(Veselin Dobrev)、珍妮·西尔万·卡米尔(Jean-Sylvane Camier)、马丁。2020年。高性能PDE解算器的可扩展性。Arxiv预印Arxiv:2004.06722(2020)。谷歌学者谷歌学者
  21. P.F.Fischer、K.Heisey和M.Min,2015年。基于PDE的仿真的缩放限制。第22届AIAA计算流体动力学会议论文集。德克萨斯州达拉斯。谷歌学者谷歌学者
  22. 阿格纳·福格。【未注明日期】。VCL C++向量类库v1.30。检索自http://www.agner.org/optimize/vectorclass.pdf。谷歌学者谷歌学者
  23. F.Franchetti、S.Kral、J.Lorenz和C.W.Ueberhuber。2005.高效利用SIMD扩展。程序。IEEE 93,2(2005年2月),409--425。内政部:https://doi.org/10.109/JPROC.2004.840491谷歌学者谷歌学者交叉引用交叉引用
  24. 维维特·吉罗(Vivette Girault)、玛丽·贝特里斯·里维尔(Mary Béatrice Rivière)和F.惠勒(F.Wheeler)。stokes和Navier-stokes问题的非重叠区域分解间断Galerkin方法。数学。计算。74 (2005), 53--84.谷歌学者谷歌学者交叉引用交叉引用
  25. 谷歌。2020年基准。检索自https://github.com/google/bequinchmark。谷歌学者谷歌学者
  26. 亚历山大·海内克(Alexander Heinecke)、格雷格·亨利(Greg Henry)、麦克斯韦尔·哈钦森(Maxwell Hutchinson)和汉斯·帕布斯特(Hans Pabst)。2016.LIBXSMM:通过运行时代码生成加速小矩阵乘法运算。高性能计算、网络、存储和分析国际会议论文集。IEEE出版社,84。谷歌学者谷歌学者交叉引用交叉引用
  27. Miklós Homolya、Lawrence Mitchell、Fabio Luporini和David A.Ham。2018年,TSFC:一个结构呈现形式编译器。SIAM科学杂志。计算。40,3(2018),C401–C428。谷歌学者谷歌学者数字图书馆数字图书馆
  28. H.Huang和G.Scovazzi。2013.用于可压缩多孔介质中粘性指进建模的高阶、全耦合、迎风紧致间断Galerkin方法。应用力学与工程中的计算机方法263,0(2013),169--187。内政部:https://doi.org/10.1016/j.cma.2013.04.010谷歌学者谷歌学者交叉引用交叉引用
  29. 乔治·埃姆·卡尼亚达基斯(George Em Karniadakis)和斯宾塞·J·舍温(Spencer J.Sherwin)。2005.CFD的光谱/hp元素方法。牛津大学出版社。谷歌学者谷歌学者
  30. Dominic Kempf和Rene Heß。2020.现代架构上高性能间断Galerkin方法的自动代码生成-软件堆栈:检索自https://doi.org/10.5281/zenodo.377926。内政部:https://doi.org/10.5281/zenodo.3779266谷歌学者谷歌学者
  31. 多米尼克·坎普夫和蒂莫·科赫。2017年,以DUNE为例,在科学数值软件框架中进行系统测试。架构(architecture)。数字。柔和。5, 1 (2017), 151--168.谷歌学者谷歌学者
  32. 金京珠、蒂莫西·科斯塔、梅赫迈特·德韦西、安德鲁·布拉德利、西蒙·哈蒙德、穆拉特·古尼、莎拉·克奈珀、谢恩·斯托里和西瓦桑卡兰·拉贾马尼卡姆。2017.设计矢量友好的紧凑BLAS和LAPACK内核。《高性能计算、网络、存储和分析国际会议论文集》(SC'17)。ACM,纽约州纽约市,第55条,12页。内政部:https://doi.org/10.1145/3126908.3126941谷歌学者谷歌学者数字图书馆数字图书馆
  33. Robert C.Kirby和Anders Logg。2006.变分形式编译器。ACM事务处理。数学。柔和。32, 3 (2006), 417--444.谷歌学者谷歌学者数字图书馆数字图书馆
  34. 罗伯特·C·科尔比(Robert C.Kirby)和基尤·特里·西(Kieu Tri Thinh)。2012.使用伯恩斯坦多项式的快速简单求积有限元算子。数字。数学。121, 2 (2012), 261--279. 内政部:https://doi.org/10.1007/s00211-011-0431-y谷歌学者谷歌学者数字图书馆数字图书馆
  35. 安德烈亚斯·科克纳。2014年,卢奥。Py:针对GPU和CPU的基于转换的代码生成。《ACM SIGPLAN数组编程库、语言和编译器国际研讨会论文集》(Array’14)。ACM,纽约州纽约市,第82条,6页。内政部:https://doi.org/10.1145/2627373.2627387谷歌学者谷歌学者数字图书馆数字图书馆
  36. 安德烈亚斯·科克纳(Andreas Klöckner)、卢卡斯·威尔科克斯(Lucas C.Wilcox)和T.沃伯顿(T.Warburton)。2016.与Loo进行阵列程序转换。Py举例:高阶有限元。第三届ACM SIGPLAN数组编程库、语言和编译器国际研讨会会议记录(Array’16)。ACM,纽约,纽约,9-16。内政部:https://doi.org/10.1145/2935323.2935325谷歌学者谷歌学者
  37. Tzanio Kolev等人。【未注明日期】。MFEM:模块化有限元方法。检索自http://mfem.org。谷歌学者谷歌学者
  38. 本杰明·克兰克(Benjamin Krank)、尼古拉斯·费恩(Niklas Fehn)、沃尔夫冈·沃尔(Wolfgang A.Wall)和马丁·克伦比克勒(Martin Kronbichler)。2017.三维不可压缩流的高阶半显式间断Galerkin解算器,应用于湍流通道流的DNS和LES。J.计算。物理学。348 (2017), 634--659. 内政部:https://doi.org/10.1016/j.jcp.2017.07.039谷歌学者谷歌学者数字图书馆数字图书馆
  39. 马蒂亚斯·克雷茨和沃尔克·林登斯特鲁斯。2012.Vc:用于显式矢量化的C++库。软件:实际。专家。42, 11 (2012), 1409--1430. 内政部:https://doi.org/10.1002/spe.1149谷歌学者谷歌学者数字图书馆数字图书馆
  40. 莫里茨·克鲁泽(Moritz Kreutzer)、乔治·海格(Georg Hager)、格哈德·韦莱因(Gerhard Wellein)、霍尔格·费斯克(Holger Fehske)和阿兰·毕晓普(Alan R.Bishop)。2014.一种统一的稀疏矩阵数据格式,用于在具有宽SIMD单元的现代处理器上进行高效的通用稀疏矩阵-向量乘法。SIAM J.科学。计算。36,5(2014),C401–C423。内政部:https://doi.org/10.1137/130930352谷歌学者谷歌学者数字图书馆数字图书馆
  41. 马丁·克伦比希勒和凯萨琳娜·科尔曼。2012.基于并行单元的有限元操作符应用程序的通用接口。计算。《流体》63(2012),135-147。内政部:https://doi.org/10.1016/j.compfluid.2012.04.012谷歌学者谷歌学者交叉引用交叉引用
  42. 马丁·克伦比希勒和凯萨琳娜·科尔曼。2019.不连续Galerkin有限元算子的快速无矩阵评估。ACM事务处理。数学。柔和。第45、3条,第29条(2019年8月),40页。内政部:https://doi.org/10.1145/3325864谷歌学者谷歌学者数字图书馆数字图书馆
  43. 马丁·克伦比希勒(Martin Kronbichler)和沃尔夫冈·沃尔(Wolfgang A.Wall)。2018.连续和非连续Galerkin方法与快速多重网格求解器的性能比较。SIAM J.科学。计算。40,5(2018),A3423–A3448。内政部:https://doi.org/10.1137/16M110455X谷歌学者谷歌学者数字图书馆数字图书馆
  44. 李济州和比阿特丽斯·里维埃。2015。非均匀介质中不可压缩混溶位移方程的数值解。计算。方法应用。机械。工程292(2015),107-121。内政部:https://doi.org/10.1016/j.cma.2014.10.048谷歌学者谷歌学者交叉引用交叉引用
  45. Charles F.Van贷款。2000.无处不在的kronecker产品。J.计算。申请。数学。123,1(2000),85-100。内政部:https://doi.org/10.1016/S0377-0427(00)00393-9谷歌学者谷歌学者数字图书馆数字图书馆
  46. Anders Logg、Kent-Andre Mardal、Garth N.Wells等人。2012.用有限元法自动求解微分方程。施普林格。内政部:https://doi.org/10.1007/978-3-642-23099-8谷歌学者谷歌学者
  47. A.T.T.McRae、G.-T.Bercea、L.Mitchell、D.A.Ham和C.J.Cotter。2016.张量积有限元的自动生成和符号处理。SIAM J.科学。计算。38,5(2016),S25–S47。内政部:https://doi.org/10.1137/15M1021167谷歌学者谷歌学者交叉引用交叉引用
  48. 斯蒂芬·穆欣(Steffen Müthing)、玛丽安·皮亚特科夫斯基(Marian Piatkowski)和彼得·巴斯蒂安(Peter Bastian)。2017.无矩阵高阶间断Galerkin方法的高性能实现。检索自https://Arxiv:1711.10885。谷歌学者谷歌学者
  49. 史蒂芬·A·奥萨格(Steven A.Orszag)。1980。复杂几何问题的谱方法。J.计算。物理学。37, 1 (1980), 70--92. 内政部:https://doi.org/10.1016/0021-9991(80)90005-4谷歌学者谷歌学者交叉引用交叉引用
  50. Will Pazner和Per-Olof Persson。2018.非常高阶间断Galerkin方法的近似张量积预条件。J.计算。物理学。354 (2018), 344--369. 内政部:https://doi.org/10.1016/j.jcp.2017.10.030谷歌学者谷歌学者交叉引用交叉引用
  51. 玛丽安·皮亚特科夫斯基(Marian Piatkowski)、斯特芬·缪兴(Steffen Müthing)和彼得·巴斯蒂安(Peter Bastian)。2018.不可压缩Navier-Stokes方程的稳定且高阶精度的基于间断Galerkin的分裂方法。J.计算。物理学。356 (2018), 220--239.谷歌学者谷歌学者交叉引用交叉引用
  52. Florian Rathgeber、David A.Ham、Lawrence Mitchell、Michael Lange、Fabio Luporini、Andrew T.T.McRae、Gheorghe-Teodor Bercea、Graham R.Markall和Paul H.J.Kelly。2015.Firedrake:通过组合抽象实现有限元方法的自动化。检索自http://arxiv.org/abs/1501.01809。谷歌学者谷歌学者
  53. J.Schöberl、A.Arnold、J.Erb、J.M.Melenk和T.P.Wihler。2017.C++11在NGSolve中实现有限元。技术报告。谷歌学者谷歌学者
  54. Sriram Sellappa和Siddhartha Chatterjee。2004.高效缓存多重网格算法。国际期刊高性能计算。申请。18,1(2004年2月),115--133。内政部:https://doi.org/10.1177/1094342004041295谷歌学者谷歌学者数字图书馆数字图书馆
  55. 孙天骄、劳伦斯·米切尔、考希克·库尔卡尼、安德烈亚斯·科克纳、大卫·A·哈姆和保罗·H·J·凯利。2019.无矩阵有限元方法矢量化研究。检索自https://Arxiv:1903.08243。谷歌学者谷歌学者
  56. 赫伯·萨特。2005年。免费午餐结束了。Dobb博士的J.30,3(2005)。谷歌学者谷歌学者
  57. 卡西亚·维里多维奇(KasiaŚwirydowicz)、诺埃尔·查尔默斯(Noel Chalmers)、阿里·卡拉库斯(Ali Karakus)和蒂姆·沃伯顿(Tim Warburton)。2019.加快高阶有限元方法的张量积运算。国际期刊高性能计算。申请。33, 4 (2019), 735--757.谷歌学者谷歌学者数字图书馆数字图书馆
  58. 乌尔里希·特罗滕贝格(Ulrich Trottenberg)、科尼利厄斯·奥斯特利(Cornelius W.Oosterlee)和安东·舒勒(Anton Schuler)。2000.Multigrid。爱思唯尔。谷歌学者谷歌学者
  59. 莫里斯·V·威尔克斯。2001.内存缺口和高性能内存的未来。SIGARCH计算。阿奇特。新闻29,1(2001年3月),2-7。内政部:https://doi.org/10.1145/373574.3735576谷歌学者谷歌学者数字图书馆数字图书馆
  60. 塞缪尔·威廉姆斯、安德鲁·沃特曼和大卫·帕特森。2009年。Roofline:多核架构的一个富有洞察力的视觉性能模型。Commun公司。ACM 52,4(2009),65-76。谷歌学者谷歌学者数字图书馆数字图书馆

索引术语

  1. 现代建筑中高性能间断Galerkin方法的代码自动生成

              建议

              评论

              登录选项

              检查您是否可以通过登录凭据或您的机构访问本文。

              登录

              完全访问权限

              • 发布于

                封面图片ACM数学软件汇刊
                ACM数学软件汇刊 第47卷第1期
                2021年3月
                219页
                国际标准编号:2009年8月35日
                EISSN公司:1557-7295
                内政部:10.1145/3441641
                问题目录

                版权所有©2020所有者/作者

                本作品根据Creative Commons Attribution-ShareAlike International 4.0许可证授权。

                发布者

                计算机协会

                美国纽约州纽约市

                出版历史

                • 出版:2020年12月8日
                • 认可的:2020年9月1日
                • 修订过的:2020年4月1日
                • 收到:2018年12月1日
                发布于汤姆斯第47卷第1期

                权限

                请求有关此文章的权限。

                请求权限

                检查更新

                限定符

                • 研究论文
                • 研究
                • 推荐

              PDF格式

              以PDF文件查看或下载。

              PDF格式

              电子阅读器

              使用eReader联机查看。

              电子阅读器

              HTML格式

              以HTML格式查看本文。

              查看HTML格式