High-performance finite elements with MFEM

Julian Andrej,Nabil Atallah,Jan-Phillip Bäcker,John Camier,Dylan Copeland,Veselin Dobrev,Yohann Dudouit,Tobias Duswald,Brendan Keith,Dohyun Kim,Tzanio Kolev,Boyan Lazarov,Ketan Mittal,Will Pazner,Socratis Petrides,Syun'ichi Shiraiwa,Mark Stowell,Vladimir Tomov
2024-02-25
Abstract:The MFEM (Modular Finite Element Methods) library is a high-performance C++ library for finite element discretizations. MFEM supports numerous types of finite element methods and is the discretization engine powering many computational physics and engineering applications across a number of domains. This paper describes some of the recent research and development in MFEM, focusing on performance portability across leadership-class supercomputing facilities, including exascale supercomputers, as well as new capabilities and functionality, enabling a wider range of applications. Much of this work was undertaken as part of the Department of Energy's Exascale Computing Project (ECP) in collaboration with the Center for Efficient Exascale Discretizations (CEED).
Mathematical Software,Numerical Analysis
What problem does this paper attempt to address?
The paper focuses on the high-performance development of the MFEM (Modular Finite Element Methods) library, which is a C++ library for the discretization of finite element methods. The research focuses on improving the performance portability of MFEM on top-level supercomputing facilities, including exascale supercomputers, and extending its functionality to support a wider range of applications. The specific improvements include: 1. **GPU acceleration**: MFEM now supports comprehensive GPU acceleration, including high-order mesh optimization and GPU-accelerated solvers, particularly for problems in all spaces of finite element de Rham complexes. By utilizing low-order refinement-based preconditioning techniques, the solver has been extended to saddle point problems. 2. **Enhanced functionality**: MFEM has added support for special discretization methods, such as DPG methods, implemented automatic differentiation, supported multi-physics applications, and discretized random and fractional order partial differential equations. 3. **Mesh capabilities**: MFEM has enhanced its support for GPU-based high-order mesh optimization algorithms, and introduced new methods such as distance solvers, shifted boundary methods, and integrated rules for slicing to support level-set based methods. 4. **Matrix-free solvers**: MFEM has developed matrix-free solvers for high-order finite element problems, utilizing low-order refinement-based preconditioning techniques to reduce memory usage and computational complexity. 5. **GPU compatibility**: MFEM supports operator assembly at different levels, ranging from fully matrix-free to fully matrix assembly, to adapt to various GPU platforms, including high-performance and scalability on exascale systems. 6. **Kernel fusion**: MFEM improves the strong scalability of high-order finite element solvers through kernel fusion techniques, reducing the problem size required to achieve peak performance. The paper showcases how MFEM enhances the performance of scientific computing and engineering applications through the aforementioned improvements, by providing detailed coverage of the latest research and developments in these areas.