Information (Nov 2024)

Enabling Parallel Performance and Portability of Solid Mechanics Simulations Across CPU and GPU Architectures

  • Nathaniel Morgan,
  • Caleb Yenusah,
  • Adrian Diaz,
  • Daniel Dunning,
  • Jacob Moore,
  • Erin Heilman,
  • Evan Lieberman,
  • Steven Walton,
  • Sarah Brown,
  • Daniel Holladay,
  • Russell Marki,
  • Robert Robey,
  • Marko Knezevic

DOI
https://doi.org/10.3390/info15110716
Journal volume & issue
Vol. 15, no. 11
p. 716

Abstract

Read online

Efficiently simulating solid mechanics is vital across various engineering applications. As constitutive models grow more complex and simulations scale up in size, harnessing the capabilities of modern computer architectures has become essential for achieving timely results. This paper presents advancements in running parallel simulations of solid mechanics on multi-core CPUs and GPUs using a single-code implementation. This portability is made possible by the C++ matrix and array (MATAR) library, which interfaces with the C++ Kokkos library, enabling the selection of fine-grained parallelism backends (e.g., CUDA, HIP, OpenMP, pthreads, etc.) at compile time. MATAR simplifies the transition from Fortran to C++ and Kokkos, making it easier to modernize legacy solid mechanics codes. We applied this approach to modernize a suite of constitutive models and to demonstrate substantial performance improvements across different computer architectures. This paper includes comparative performance studies using multi-core CPUs along with AMD and NVIDIA GPUs. Results are presented using a hypoelastic–plastic model, a crystal plasticity model, and the viscoplastic self-consistent generalized material model (VPSC-GMM). The results underscore the potential of using the MATAR library and modern computer architectures to accelerate solid mechanics simulations.

Keywords