GPU-accelerated Finite Element Analysis for solid mechanics

More Info
expand_more

Abstract

Finite Element Analysis (FEA) is one of the most established techniques to approximate the solution of complex nonlinear solid mechanics problems. Modeling realistic applications utilizing FEA is computationally intensive and it is often necessary to split the computing load among different processes running concurrently on a cluster of Central Processing Units (CPUs) to reduce the simulation runtime. Such parallel computing is traditionally performed by clusters of Central Processing Units (CPUs). However, the overhead associated with inter-CPU communication eventually deteriorates performance as the number of processes increases. At that point, Graphical Processing Units (GPUs) can be utilized to decrease the computation time even further. In fact, despite GPUs generally exhibit slower processing speed than CPUs, they can run thousands of threads concurrently, resulting overall in better performance. The objective of this thesis is to explore various GPU implementations aiming to determine how GPUs can act as co-accelerators alongside CPUs within a finite element calculation. To this end, the algorithmic steps of a solid mechanics finite element solver were analyzed to identify those that best lend themselves to GPU parallel computing. Consequently, two alternative GPU parallelization strategies were proposed, each of which was benchmarked on three different representative material models with the aim of comprehensively evaluating the ramifications of integrating a GPU-accelerated implementation. Results show a speed-up ranging between 31.5x and 37.7x for the evaluated material models. In addition, this thesis presents effective strategies to systematically optimize the CPU-GPU interaction in the context of FEA for solid mechanics, thus enabling highly resolved thirty million element calculations with tailored performance to heterogeneous multi-CPU and multi-GPU hardware.