View: session overviewtalk overview

09:30 | The anatomy of the dragon: how Firedrake solves and will solve finite element problems. ABSTRACT. More information |

10:00 | Using E-Graphs for Program Optimization PRESENTER: Max Willsey ABSTRACT. An e-graph is a data structure that can efficiently encode the congruence closure of an equivalence relation over many expressions. Since their invention in 1981, e-graphs have enjoyed little use or recognition outside of their originally intended use case: communicating equalities around inside theorem provers. One strand of work proposed their use for rewrite-driven program optimization with a technique called equality saturation. In this work, we re-propose e-graphs as a solution to a diverse set of problems, addressing issues that prevented their widespread use in the past. We show a new means of maintaining congruence closure that is theoretically and practically much faster than previous techniques. We introduce several new methods of interacting with the e-graph for ergonomic programming. And we present all of these advances in a tool called 'egg' that can efficiently handle a wide range of optimization-oriented applications. As an application of egg, we present a case study on synthesizing high level structure from flat constructive solid geometry based 3D models. |

11:00 | Optimizing Finite Element Operator Evaluation on GPUs PRESENTER: Kaushik Kulkarni ABSTRACT. Recent GPUs are capable of providing peak performances upto 6 TFlOps/s (DP), making them an attractive computational backend for Firedrake. However, effectively mapping Firedrake applications to a GPU's resources remains challenging due to scattered memory access, large amounts of on-chip state space (e.g. registers) required for efficient execution, and the inherently large algorithmic variety encountered in local assembly kernels for variational forms. In this talk we focus on the computational kernel responsible for computing the action of a matrix-free FEM operator. By leveraging the "Loopy" code generation tool, we describe a parametrized family of transformation strategies targeting these kernels. We further discuss aspects of the intermediate representation and the implementation of the transform infrastructure as well as future directions on the interaction between Firedrake and its code generation layer. We present some results on achievable performance and generality of our transformation pipeline coupled with a new auto-tuning strategy based on a heuristically pruned search space. We close with directions for generalization and plans for improved maintainability of generation and transform code. |

11:30 | Multigrid solvers for semi-implicit hybridised DG methods in fluid dynamics PRESENTER: Jack Betteridge ABSTRACT. For problems in Numerical Weather Prediction (NWP), time to solution is a critical factor. Semi-implicit time-stepping methods can speed up geophysical fluid dynamics simulations by taking larger time-steps than explicit methods. This is possible because they treat the fast (but physically less important) waves implicitly, and the time-step size is not restricted by the CFL condition for these waves. One disadvantage of this method is that an expensive linear solve must be performed at every time step, however, using an effective preconditioner for an iterative method significantly reduces the computational cost of this solve, making a semi-implicit scheme faster overall. Higher-order Discontinuous Galerkin (DG) methods are known for having high arithmetic intensity making them well suited for modern HPC hardware, but are difficult to precondition due to the large number of coupled degrees of freedom. This coupling arises since the numerical flux introduces off diagonal artificial diffusion terms. By using a hybridised DG method we can eliminate the original coupling and instead couple the equations to a smaller global system on the trace space, which is easier to precondition. This is achieved by considering the numerical flux variables which only lie on the facets of the mesh. Recent work by Kang, Giraldo and Bui-Thanh[1] solves the resultant system directly. However, this becomes impractical for high resolution simulations. We build on this work by solving the resultant system using a non-nested geometric multigrid technique instead[2]. We discretise and solve the non-linear shallow water equations, an important model system in geophysical fluid dynamics, and demonstrate the effectiveness of the multigrid preconditioner for a semi-implicit IMEX time-stepper. The method is implemented in the SLATE language, which is part of the Firedrake project. We present new results comparing the IMEX timestepper combined with hybridisation and non-nested multigrid to more traditional explicit timestepping of DG methods. References: [1] Kang, Shinhoo and Giraldo, Francis X and Bui-Thanh, Tan. IMEX HDG-DG: a coupled implicit hybridized discontinuous Galerkin (HDG) and explicit discontinuous Galerkin (DG) approach for shallow water systems arXiv preprint arXiv:1711.02751, 2017 [2] Cockburn, Bernardo and Dubois, Olivier and Gopalakrishnan, Jay and Tan, Shuguang. Multigrid for an HDG method IMA Journal of Numerical Analysis 34(4):1386–1425, 2014 |

14:00 | EquationBC: applying boundary conditions in equation form PRESENTER: Koki Sagiyama ABSTRACT. In this session we introduce a recently added feature of Firedrake to apply boundary conditions in equation form using `EquationBC` class. Designed to be a generalisation of DirichletBC class for applying Dirichlet boundary conditions, EquationBC class allows users to force degrees of freedom on boundary to satisfy some partial differential equations. This generalisation becomes useful when, e.g., solving problems that have distinct physics in the domain and on the boundary. We will illustrate the use of EquationBC using simple examples. |

15:00 | PCPATCH: Software for the Topological Construction of Multigrid Relaxation Methods PRESENTER: Lawrence Mitchell ABSTRACT. Effective relaxation methods are necessary for good multigrid convergence. For many equations, standard Jacobi and Gauß-Seidel are inadequate, and more sophisticated space decompositions are required; examples include problems with semidefinite terms or saddle point structure. In this presentation we present a unifying software abstraction, PCPATCH, for the topological construction of space decompositions for multigrid relaxation methods. Space decompositions are specified by collecting topological entities in a mesh (such as all vertices or facets) and applying a construction rule (such as taking all degrees of freedom in the cells around each entity). The software is implemented in PETSc and facilitates the elegant expression of a wide range of schemes merely by varying solver options at runtime. In turn, this allows for the very rapid development of fast solvers for difficult problems. |