Researchers at IT4Innovations National Supercomputing Center have developed a new method for optimising the performance of finite element method (FEM) computations. Having been published in the Computer Physics Communications journal, their innovative adaptive solution, which adapts computations based on parameters specified at runtime, achieves up to eight times faster computations.
Finite element methods (FEM) are crucial for simulations of physical phenomena such as heat transfer and stress distribution. FEMs decompose complex problems into simpler parts, which are assigned different physical parameters and then solved numerically in parallel. Optimising the performance of these computations is challenging, especially when different parameters such as material properties or initial and boundary conditions need to be considered.
Kristián Kadlubiak, Ondřej Meca, Lubomír Říha, and Tomáš Brzobohatý from IT4Innovations have developed a new approach that simplifies and speeds up computations. It uses techniques such as vectorisation, meta-programming, and dynamic polymorphism to allow flexible customisation and selection of specific matrix builder functions at runtime.
They used four different types of processors to test the new approach: AMD 7H12, AMD 7763 (Karolina supercomputer), Intel Cascade Lake 6240, and Intel Skylake Gold 6126 (Barbora supercomputer). AMD and Intel processors exhibit different performance levels depending on the optimisation and vectorisation methods used. For example, Intel Skylake Gold 6126 achieved the best performance in specific tests, while AMD 7H12 showed performance variability depending on the compiler.
During the simulation, the physical parameters are converted into a system of linear equations using the compiler functions, which are applied to the individual mesh elements. These functions, referred to as "kernels", are critical to the numerical solution. Researchers have made significant progress in optimising these functions using advanced techniques. Cross-element vectorisation enables the transformation of a standard code into a format capable of efficiently processing multiple data points simultaneously. Metaprogramming leverages the capabilities of compilers to create specialised functions tailored to specific parameters. Dynamic polymorphism allows only necessary functions to be dynamically selected during the program runtime.
Scientific paper
An approach for dynamically adaptable SIMD vectorization of FEM kernels
https://doi.org/10.1016/j.cpc.2024.109319
The research was supported by the EUPEX project. https://eupex.eu/
A temperature sensor consists of 40 parts made of 12 different materials. In the article, IT4Innovations researchers describe the concept of heat transfer in cores and how temperature affects processor performance.