FIREDRAKE '24: FIREDRAKE '24
PROGRAM FOR MONDAY, SEPTEMBER 16TH
Days:
next day
all days

View: session overviewtalk overview

13:30-14:45 Session 1: Software Developments in Firedrake
13:30
Welcome
13:45
New elements in Firedrake
PRESENTER: Pablo Brubeck

ABSTRACT. FIAT (FInite element Automatic Tabulator) provides a powerful Python library for generation and tabulation of finite elements in Firedrake. We recently introduced Lagrange points with better interpolation properties (Isaac, 2020) and more efficient quadrature rules (Xiao and Gimbutas, 2010), improving the accuracy and efficiency of code generated from FIAT tabulations of high-order simplex elements.

We also demonstrate the recently added macro-elements that enable conforming discretizations at lower polynomial degrees for fourth-order problems, Stokes flow, and the stress-displacement formulation of linear elasticity. These macro-elements do not require an explicit mesh refinement, and can be mixed with other non-macro elements. We highlight Firedrake's solver composablitiy by applying multigrid and patch-based preconditioners to solve macro-element discretizations of PDEs.

We finally discretize the high-order de Rham complex on simplices using the degrees of freedom from (Demkowicz et al., 2000). With a careful choice of orthogonal polynomial bubbles, the interior and interface blocks of the stiffness matrix become weakly coupled, allowing for fast iterative solvers for the Riesz maps using finer space decompositions.

In each case, we illustrate some of the gains obtained through simple numerical tests.

14:00
Redefining the finite element
PRESENTER: India Marsden

ABSTRACT. A core feature of the success of the finite element method, the Ciarlet definition of the components of a finite element has been used for many years. The experience of these decades (and the subsequent implementations) has exposed several key deficiencies. In particular, Ciarlet’s definition is missing information about the global continuity of the mesh and how the degrees of freedom map to each other under the relative orientation of the mesh entities. This information is necessary to implement the finite element method, leaving scope for a new definition.

We propose a new definition to handle these issues and incorporate the constantly growing landscape of new elements. This new definition also aims to encapsulate more information about the elements, such as the symmetries, incorporating ideas from Group Theory. Through this work, we hope to produce a robust, thorough definition that allows processes such as implementation-independent serialisation of finite element data.

This talk will present the machinery of the proposed new definition in two dimensions and provide some examples of commonly used elements.

14:15
pyop3 is coming
PRESENTER: Connor Ward

ABSTRACT. pyop3 is a new domain-specific language (DSL) for expressing the application of computational kernels over an unstructured mesh. It was created to address shortcomings with PyOP2, a core component of the Firedrake framework, and is slated to replace it sometime within the next 6 months.

Compared with PyOP2, the pyop3 DSL is much more composable; enabling users to express – and hence generate code for - a wider selection of problems that aren’t necessarily FEM specific.

In this talk we will introduce some of the foundational concepts behind pyop3 before giving a few examples. Emphasis will be placed on how the changes to pyop3 will appear to a typical Firedrake user, and the sorts of novel features that its integration should make possible.

14:30
Reinventing the wheel

ABSTRACT. Over the course of its life to date Firedrake has seen many improvements and new features, but one thing has remained the same: It has always been really rather complicated to install. Supercomputers are a challenge for the installation procedure of any piece of software, and Firedrake is no exception. These Goliaths of the computing world are one of the trickiest platforms for `firedrake-install` to succeed, with failed installation rates second only to an Apple MacBook. However, it is imperative that a highly tuned and specific build configuration is maintained for both architectures in order for end users to get the best performance from their code.

Come with me on a journey to discover exactly why Firedrake has an install script, which of its dependencies are "good", which are "bad", and how often a user should update. All the while I will desperately try to justify some of the strange things that occur during installation. I will outline many of the changes that have been made to Firedrake recently to improve the installation experience. Additionally, I will outline some of the changes that have been made recently to the installation that improve the Firedrake experience.

Finally, I will unveil my plan for the future of installing Firedrake, including my dream of finally removing the install script.

14:45-15:15Coffee Break
15:15-16:15 Session 2: Parallelism and Plasma
15:15
Parallel-in-time acceleration of atmospheric models using ParaDiag

ABSTRACT. The number of available cores on HPC machines is often greater than the available spatial parallelism in a PDE solver. One way to expose additional parallelism is to solve multiple timesteps all-at-once. Such parallel-in-time methods generally perform well for parabolic problems, but very few methods produce practical speedups for hyperbolic problems.

The ParaDiag method has previously produced speedups for certain hyperbolic problems. ParaDiag solves multiple timesteps simultaneously by preconditioning the all-at-once system Jacobian with a block diagonalisable matrix which can be solved efficiently in parallel.

I will present recent progress on the application of ParaDiag to atmospheric models. Scaling results to several thousand cores will be shown, achieving speedups comparable to - or exceeding – current state of the art. I will discuss our approaches to solving the all-at-once nonlinear system and the linear systems in the preconditioner, as well as avenues for further improvement. These methods are implemented in our open-source library asQ using Firedrake and petsc4py.

15:30
The modern CUDA ecosystem: talking to your GPU

ABSTRACT. Firedrake emerged, in part, from projects looking at finite elements on GPUs, but that was in the depths of history and we swiftly pivoted to a CPU-centric approach.

A decade later, there is interest in revisiting this decision, and both the hardware and software have moved on since the last time Firedrake tried this in anger. As well as a much broader ecosystem of GPU libraries, there is also renewed interest in making the core programming experience harder to misuse. To that end, I'll present some thoughts on device-side libraries and programming abstractions for writing fast kernels correctly.

15:45
Progress coupling Finite Elements from Firedrake with Particles in Excalibur NEPTUNE

ABSTRACT. Project NEPTUNE approaches one of the grand challenge problems in fusion - modelling plasma in the edge region of a tokamak. In this edge region, hot plasma interfaces with the reactor wall and cold neutral gas resulting in a computationally expensive multi-scale problem that is considered an exascale challenge. This plasma use case requires discretisations that represent distributions over both physical space and over the product of physical space and velocity space. We apply finite elements as a discretisation over physical space and use a particle representation as a so called "kinetic" representation in velocity space.

In this talk we discuss extensions to NESO-Particles (NP), our particle framework, which enable particles to exist on DMPlex meshes. NP is a particle framework which utilises SYCL as a performance portability abstraction for CPU and GPU architectures. By employing DMPlex as a supported mesh representation we facilitate coupling NP to Firedrake. This coupling allows particles to traverse Firedrake meshes and provides a two-directional coupling where particle data can be represented on Firedrake function spaces and Firedrake functions can be evaluated at particle positions.

16:00
Firedrake applications from fusion plasma modelling

ABSTRACT. Project NEPTUNE approaches one of the grand challenge problems in fusion - modelling plasma in the edge region of a tokamak. In this edge region, hot plasma interfaces with the reactor wall and cold neutral gas resulting in a computationally expensive multi-scale problem that is considered an exascale challenge.

The complexity of the models in the description of a fusion plasma give rise to a wide variety of interesting physics problems posed as PDEs and integro-differential equations. This talk will present examples of relevant problems implemented in Firedrake, including two- and three-dimensional plasma turbulence, heat transfer in a convecting fluid, and a simple kinetic theory example.