×

AMGCL:一种高效、灵活、可扩展的代数多重网格实现。 (英语) Zbl 1452.65426号

摘要:本文介绍了AMGCL,这是一个开源C++库,实现了代数多重网格法(AMG),用于求解大型稀疏线性方程组,这些方程组通常来自于非结构化网格上的偏微分方程离散化。该库支持共享和分布式内存计算,允许通过OpenMP、OpenCL或CUDA技术利用现代大规模并行处理器,具有最小的依赖性,并且易于扩展。本文讨论了AMGCL背后的设计原则,并表明代码性能与其他实现相当。

MSC公司:

65日元 数值算法的封装方法
65层10 线性系统的迭代数值方法
65层50 稀疏矩阵的计算方法
65日元10 特定类别建筑的数值算法
PDF格式BibTeX公司 XML格式引用

参考文献:

[1] A.Alexandrescu,《现代C++设计:应用的通用编程和设计模式》(Addison-Wesley,Reading,MA,2001)。
[2] A.H.Baker、E.R.Jessup和Th.Manteuffel,“加速重新启动的GMRES收敛的技术”,SIAM J.Matrix Anal。申请。26, 962-984 (2005). ·兹比尔1086.65025 ·doi:10.1137/S089547979803422014
[3] S.Balay、Sh.Abhyankar、M.F.Adams、J.Brown、P.Brune、K.Buschelman、L.Dalcin、V.Eijkhout、W.D.Gropp、D.Kaushik、M.G.Knapley、L.C.McInnes、K.Rupp、B.F.Smith、S.Zampini和Hong Zhang,“PETSc用户手册”,技术代表ANL-95/11,第3.7版(阿贡国家劳工局,2016年)。
[4] R.Barrett、M.Berry、T.F.Chan、J.Demmel、J.Donato、J.Tongarra、V.Eijkhout、R.Pozo、Ch.Romine和H.van der Vorst,《线性系统解的模板:迭代方法的构建块》(SIAM,费城,1994)·Zbl 0814.65030号 ·doi:10.1137/1.9781611971538
[5] N.Bell、S.Dalton和L.N.Olson,“揭示代数多重网格方法中的细粒度并行性”,SIAM J.Sci。计算。34(4),C123-C152(2012)·Zbl 1253.65041号 ·数字对象标识代码:10.1137/10838844
[6] A.Brandt、S.McCoruick和J.Huge,《稀疏矩阵方程的代数多重网格(AMG)》,D.J.Evans编辑(剑桥大学出版社,1985年),第257页。
[7] O.Bröker和M.J.Grote,“几何和代数多重网格的稀疏近似逆平滑器”,应用。数字。数学。第41,61-80页(2002年)·Zbl 0995.65129号 ·doi:10.1016/S0168-9274(01)00110-6
[8] A.J.Cleary、R.D.Falgout、H.van Emden、J.E.Jones、Th.A.Manteuffel、S.F.McCormick、G.N.Miranda和J.W.Ruge,“代数多重网格的鲁棒性和可扩展性”,SIAM J.Sci。计算。21, 1886-1908 (2000). ·Zbl 0959.65049号 ·doi:10.1137/S1064827598339402
[9] P.Dadvand、R.Rossi、M.Gil、X.Martorell、J.Cotela、E.Juanpere、S.R.Idelsohn和E.Oñate,“通用多物理框架向HPC环境的迁移”,Comput。《流体》80301-309(2013)·Zbl 1426.76644号 ·doi:10.1016/j.compfluid.2012.02.004
[10] P.Dadvand、R.Rossi和E.Oñate,“为多学科应用开发有限元代码的面向对象环境”,Arch。计算。方法工程17,253-297(2010)·兹比尔1360.76130 ·doi:10.1007/s11831-010-9045-2
[11] L.Dagum和R.Menon,“OpenMP:共享内存编程的行业标准API”,IEEE计算。科学。工程5,46-55(1998)。 ·数字对象标识代码:10.1109/99.660313
[12] S.Dalton、N.Bell、L.Olson和M.Garland,“Cusp:稀疏矩阵和图形计算的通用并行算法”,版本0.5.0(2014)。http://cusplibrary.github.io。
[13] D.E.Demidov和D.V.Shevchenko,“基于GPGPU有效解决非稳态流体动力学问题的代数多重网格修改”,《计算杂志》。科学。3, 460-462 (2012). ·doi:10.1016/j.jocs.2012.08.008
[14] D.Demidov和R.Rossi,“分布式内存AMGCL基准测试的Navier-Stokes问题”(2018年)。https://doi.org/10.5281/zenodo.1231818
[15] D.Demidov和R.Rossi,“共享内存AMGCL基准的Navier-Stokes问题”(2018年)。https://doi.org/10.5281/zenodo.1231961
[16] J.(Jean)Donéa和a.Huerta,《流动问题的有限元方法》(Wiley,2003)。
[17] R.D.Falgout和U.M.Yang,“Hypre:高性能预处理程序库”,《国际计算科学会议论文集》(Springer,2002),第632-641页·Zbl 1056.65046号
[18] D.R.Fokkema,《求解线性方程组的BiCGstab(l)的增强实现》(乌得勒支大学,1996年)。
[19] M.W.Gee、C.M.Siefert、J.J.Hu、R.S.Tuminaro和M.G.Sala,“ML 5.0平滑了聚合用户指南”,技术报告SAND2006-2649(Sandia Natl.Laboratories,2006)。
[20] B.Gmeiner、M.Huber、L.John、U.Rüde和B.Wohlmuth,“斯托克斯解算器在极端规模下的定量性能研究”,J.Compute。科学。17, 509-521 (2016). ·doi:10.1016/j.jocs.2016.0.006
[21] S.Gries,K.Stüben,G.L.Brown,D.Chen,D.A.Collins等人,“在完全隐式油藏模拟中有效应用代数多重网格的预处理”,SPE J.19,726-736(2014)。 ·数字对象标识码:10.2118/163608-PA
[22] P.Hénon、P.Ramet和J.Roman,“PASTIX:稀疏对称正定系统的高性能并行直接求解器”,《并行计算》。28, 301-321 (2002). ·Zbl 0984.68208号 ·doi:10.1016/S0167-8191(01)00141-7
[23] J.Hogg和J.Scott,“多核架构的新型并行稀疏直接解算器”,《算法》6702-725(2013)·Zbl 1461.65063号 ·doi:10.3390/a6040702
[24] K.-A.Lie,《使用MATLAB进行油藏模拟简介:MATLAB油藏模拟工具箱(MRST)用户指南》(SINTEF ICT,挪威,2016年)·Zbl 1425.76001号
[25] J.W.Ruge和K.Stüben,“代数多重网格”,《多重网格方法》(SIAM,1987),第73-130页。
[26] K.Rupp、F.Rudolf和J.Weinbub,“ViennaCL”——GPU和多核CPU的高级线性代数库”,《GPU和科学应用国际研讨会论文集》,2010年,第51-56页。
[27] Y.Saad,稀疏线性系统的迭代方法(SIAM,2003)·Zbl 1031.65046号
[28] M.Sala和R.S.Tuminaro,“非对称线性系统的新型Petrov-Galerkin平滑聚集预条件”,SIAM J.Sci。计算。31, 143-166 (2008). ·兹比尔1183.76673 ·doi:10.1137/060659545
[29] J.Sanders和E.Kandrot,《CUDA示例:通用GPU编程简介》(Addison-Wesley Professional,Reading,MA,2010)。
[30] P.Sonneveld和M.B.van Gijzen,“IDR(s):求解大型非对称线性方程组的一系列简单快速算法”,SIAM J.Sci。计算。31, 1035-1062 (2008). ·Zbl 1190.65053号 ·数字对象标识代码:10.1137/070685804
[31] J.E.Stone、D.Gohara和G.Shi,“OpenCL:异构计算系统的并行编程标准”,计算。科学。《工程》12(3),66-73(2010)。 ·doi:10.1109/MCSE.2010.69
[32] Stuben,K.,《代数多重网格(AMG):应用简介》(1999),德国圣奥古斯丁
[33] U.Trottenberg、C.Oosterlee和A.Schüller,Multigrid(学术,伦敦,2001年)·Zbl 0976.65106号
[34] P.Vaněk、J.Mandel和M.Brezina,“二阶和四阶椭圆问题的平滑聚合代数多重网格”,《计算》56,179-196(1996)·Zbl 0851.65087号 ·doi:10.1007/BF02238511
[35] R.Verfurth,“Stokes问题数值解的联合共轭梯度-多重网格算法”,IMA J.Numer。分析。4, 441-455 (1984). ·Zbl 0563.76028号 ·doi:10.1093/imanum/4.4.441
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。