P09 - Efficient Execution of Multiphysics Simulation Assembly Using Kokkos::Graph
Description
The computation of elemental system matrices and right-hand-side vectors and their assembly into sparse linear algebra data structures is a key component of many multiphysics simulation codes. When the assembly involves multiple types of governing equations that might also change by subdomain (heterogeneous coefficients, different source terms, different types of boundary conditions, …), using a single computational kernel can lead to inefficient performance and memory footprint. Therefore, one may want to specialize the kernels, thus generating many kernels that need to be created and efficiently scheduled, potentially many times (e.g., iterative solver). These asynchronous kernels must also observe dependencies, thus naturally leading to a graph-based implementation. In this poster, we will present how we realised such an implementation in an in-house multiphysics FEM code using Kokkos::Graph. In particular, we will discuss how we designed a polymorphic hierarchy of functors for performing the assembly on device and how we map these functors to nodes in the graph, while avoiding polymorphic calls on device. We will illustrate the proposed approach and evaluate the performance in the context of a computational electromagnetism simulation relevant to diffraction gratings.
Presenter(s)
Presenter
Maarten Arnst is currently associate professor in the Department of Aerospace and Mechanical Engineering at the University of Liège. His research interests are in computational and stochastic modelling.