Return to search

Automated optimization of numerical methods for partial differential equations

The time required to execute real-world scientific computations is a major issue. A single simulation may last hours, days, or even weeks to reach a certain level of accuracy, despite running on large-scale parallel architectures. Strict time limits may often be imposed too - 60 minutes in the case of the UK Met Office to produce a forecast. In this thesis, it is demonstrated that by raising the level of abstraction, the performance of a class of numerical methods for solving partial differential equations is improvable with minimal user intervention or, in many circumstances, with no user intervention at all. The use of high level languages to express mathematical problems enables domain-specific optimization via compilers. These automated optimizations are proven to be effective in a variety of real-world applications and computational kernels. The focus is on numerical methods based on unstructured meshes, such as the finite element method. The loop nests for unstructured mesh traversal are often irregular (i.e., they perform non-affine memory accesses, such as A[B[i]]), which makes reordering transformations for data locality essentially impossible for low level compilers. Further, the computational kernels are often characterized by complex mathematical expressions, and manual optimization is simply not conceivable. We discuss algorithmic solutions to these problems and present tools for their automation. These tools - the COFFEE compiler and the SLOPE library - are currently in use in frameworks for solving partial differential equations.

Identiferoai:union.ndltd.org:bl.uk/oai:ethos.bl.uk:705820
Date January 2016
CreatorsLuporini, Fabio
ContributorsKelly, Paul ; Ham, David
PublisherImperial College London
Source SetsEthos UK
Detected LanguageEnglish
TypeElectronic Thesis or Dissertation
Sourcehttp://hdl.handle.net/10044/1/44726

Page generated in 0.0015 seconds