Accelerating linear solvers for Stokes problems with C plus plus metaprogramming

被引:11
作者
Demidov, Denis [1 ]
Mu, Lin [2 ]
Wang, Bin [3 ]
机构
[1] Russian Acad Sci, Sci Res Inst Syst Anal, Kazan Branch Joint Supercomp Ctr, Lobachevsky St 2-31, Kazan 420111, Russia
[2] Univ Georgia, Dept Math, Athens, GA 30605 USA
[3] Louisiana State Univ, Craft & Hawkins Dept Petr Engn, Baton Rouge, LA 70803 USA
关键词
Stokes problem; C plus plus metaprogramming; Algebraic multigrid; Scalability; NUMERICAL-SOLUTION; PARALLEL; PERFORMANCE;
D O I
10.1016/j.jocs.2020.101285
中图分类号
TP39 [计算机的应用];
学科分类号
081203 ; 0835 ;
摘要
The efficient solution of large sparse saddle point systems is very important in computational fluid mechanics. The discontinuous Galerkin finite element methods have become increasingly popular for incompressible flow problems but their application is limited due to high computational cost. We describe C++ programming techniques that may help to accelerate linear solvers for such problems. The approach is based on the policy based design pattern and partial template specialization, and is implemented in the open source AMGCL library. The efficiency is demonstrated with the example of accelerating an iterative solver of a discontinuous Galerkin finite element method for the Stokes problem. The implementation allows selecting algorithmic components of the solver by adjusting template parameters without any changes to the codebase. It is possible to switch the system matrix to use small statically sized blocks to store the nonzero values, or use a mixed precision solution, which results in up to 4 times speedup, and reduces the memory footprint of the algorithm by about 40%. We evaluate both monolithic and composite preconditioning strategies for 3 benchmark problems. The performance of the proposed solution is compared with a multithreaded direct Pardiso solver and a parallel iterative PETSc solver.
引用
收藏
页数:11
相关论文
共 41 条
[1]  
Alexandrescu A., 2001, Modern C++ Design: Generic Programming and Design Patterns Applied
[2]  
[Anonymous], 2003, Iterative Methods for Sparse Linear Systems, DOI DOI 10.1137/1.9780898718003
[3]  
[Anonymous], 2014, HIGH PERFORMANCE COM, DOI [10.1007/978-3-319-06486-4_7, DOI 10.1007/978-3-319-06486-47]
[4]  
Balay S., 2016, ANL9511R9511
[5]  
Benzi M, 2005, ACTA NUMER, V14, P1, DOI 10.1017/S0962492904000212
[6]  
BRAMBLE JH, 1988, MATH COMPUT, V50, P1, DOI 10.1090/S0025-5718-1988-0917816-8
[7]  
Brandt A., 1985, SPARSITY ITS APPL, P257
[8]   Sparse approximate inverse smoothers for geometric and algebraic multigrid [J].
Bröker, O ;
Grote, MJ .
APPLIED NUMERICAL MATHEMATICS, 2002, 41 (01) :61-80
[9]  
Cockburn B., 2012, Discontinuous galerkin methods: Theory, computation and applications, V11
[10]   AMGCL: An Efficient, Flexible, and Extensible Algebraic Multigrid Implementation [J].
Demidov, D. .
LOBACHEVSKII JOURNAL OF MATHEMATICS, 2019, 40 (05) :535-546