95
IRUS TotalDownloads
Altmetric
Abstractions and performance optimisations for finite element methods
File | Description | Size | Format | |
---|---|---|---|---|
Sun-T-2021-PhD-Thesis.pdf | Thesis | 1.87 MB | Adobe PDF | View/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