Repository logo
  • Log In
    Log in via Symplectic to deposit your publication(s).
Repository logo
  • Communities & Collections
  • Research Outputs
  • Statistics
  • Log In
    Log in via Symplectic to deposit your publication(s).
  1. Home
  2. Faculty of Engineering
  3. Computing
  4. Computing PhD theses
  5. Abstractions and performance optimisations for finite element methods
 
  • Details
Abstractions and performance optimisations for finite element methods
File(s)
Sun-T-2021-PhD-Thesis.pdf (1.82 MB)
Thesis
Author(s)
Sun, Tianjiao
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.
Version
Open Access
Date Issued
2021-07
Date Awarded
2022-01
URI
http://hdl.handle.net/10044/1/95186
DOI
https://doi.org/10.25560/95186
Copyright Statement
Creative Commons Attribution NoDerivatives Licence
License URL
https://creativecommons.org/licenses/by-nc/4.0/
Advisor
Kelly, Paul
Sponsor
Engineering and Physical Sciences Research Council
Publisher Department
Computing
Publisher Institution
Imperial College London
Qualification Level
Doctoral
Qualification Name
Doctor of Philosophy (PhD)
About
Spiral Depositing with Spiral Publishing with Spiral Symplectic
Contact us
Open access team Report an issue
Other Services
Scholarly Communications Library Services
logo

Imperial College London

South Kensington Campus

London SW7 2AZ, UK

tel: +44 (0)20 7589 5111

Accessibility Modern slavery statement Cookie Policy

Built with DSpace-CRIS software - Extension maintained and optimized by 4Science

  • Cookie settings
  • Privacy policy
  • End User Agreement
  • Send Feedback