IRUS Total

Abstractions and performance optimisations for finite element methods

File Description SizeFormat 
Sun-T-2021-PhD-Thesis.pdfThesis1.87 MBAdobe PDFView/Open
Title: Abstractions and performance optimisations for finite element methods
Authors: Sun, Tianjiao
Item Type: Thesis or dissertation
Abstract: Finding numerical solutions to partial differential equations (PDEs) is an essential task in the discipline of scientific computing. In designing software tools for this task, one of the ultimate goals is to balance the needs for generality, ease to use and high performance. Domain-specific systems based on code generation techniques, such as Firedrake, attempt to address this problem with a design consisting of a hierarchy of abstractions, where the users can specify the mathematical problems via a high-level, descriptive interface, which is progressively lowered through the intermediate abstractions. Well-designed abstraction layers are essential to enable performing code transformations and optimisations robustly and efficiently, generating high-performance code without user intervention. This thesis discusses several topics on the design of the abstraction layers of Firedrake, and presents the benefit of its software architecture by providing examples of various optimising code transformations at the appropriate abstraction layers. In particular, we discuss the advantage of describing the local assembly stage of a finite element solver in an intermediate representation based on symbolic tensor algebra. We successfully lift specific loop optimisations, previously implemented by rewriting ASTs of the local assembly kernels, to this higher-level tensor language, improving the compilation speed and optimisation effectiveness. The global assembly phase involves the application of local assembly kernels on a collection of entities of an unstructured mesh. We redesign the abstraction to express the global assembly loop nests using tools and concepts based on the polyhedral model. This enables us to implement the cross-element vectorisation algorithm that delivers stable vectorisation performance on CPUs automatically. This abstraction also improves the portability of Firedrake, as we demonstrate targeting GPU devices transparently from the same software stack.
Content Version: Open Access
Issue Date: Jul-2021
Date Awarded: Jan-2022
URI: http://hdl.handle.net/10044/1/95186
DOI: https://doi.org/10.25560/95186
Copyright Statement: Creative Commons Attribution NoDerivatives Licence
Supervisor: Kelly, Paul
Sponsor/Funder: Engineering and Physical Sciences Research Council
Department: Computing
Publisher: Imperial College London
Qualification Level: Doctoral
Qualification Name: Doctor of Philosophy (PhD)
Appears in Collections:Computing PhD theses

This item is licensed under a Creative Commons License Creative Commons