Imperial College London

DrDavidHam

Faculty of Natural SciencesDepartment of Mathematics

Senior Lecturer in AMMP
 
 
 
//

Contact

 

+44 (0)20 7594 5003david.ham Website CV

 
 
//

Location

 

758Huxley BuildingSouth Kensington Campus

//

Summary

 

Publications

Publication Type
Year
to

38 results found

Luporini F, Ham DA, Kelly PHJ, 2017, An Algorithm for the Optimization of Finite Element Integration Loops, ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE, Vol: 44, ISSN: 0098-3500

JOURNAL ARTICLE

Mitchell L, Ham DA, McRae ATT, Rathgeber F, Lange M, Luporini F, Kelly PHJ, Bercea G-T, Markall Get al., 2017, Firedrake: automating the finite element method by composing abstractions, ACM Transactions on Mathematical Software, Vol: 43, ISSN: 1557-7295

Firedrake is a new tool for automating the numerical solution of partial differential equations. Firedrakeadopts the domain-specific language for the finite element method of the FEniCS project, but with a purePython runtime-only implementation centred on the composition of several existing and new abstractions forparticular aspects of scientific computing. The result is a more complete separation of concerns which easesthe incorporation of separate contributions from computer scientists, numerical analysts and applicationspecialists. These contributions may add functionality, or improve performance.Firedrake benefits from automatically applying new optimisations. This includes factorising mixed functionspaces, transforming and vectorising inner loops, and intrinsically supporting block matrix operations.Importantly, Firedrake presents a simple public API for escaping the UFL abstraction. This allows users toimplement common operations that fall outside pure variational formulations, such as flux-limiters.

JOURNAL ARTICLE

Schwedes T, Ham DA, Funke SW, Piggott MDet al., 2017, Mesh Dependence in PDE-Constrained Optimisation An Application in Tidal Turbine Array Layouts, Publisher: Springer, ISBN: 9783319594835

This section verifies the iteration count estimates by solving the optimisation problem (2.2) numerically. The first experiment investigates the number of optimisation iterations required to solve (2.2) under non-uniform mesh refinement.

BOOK

Bercea G, McRae ATT, Ham DA, Mitchell L, Rathgeber F, Nardi L, Luporini F, Kelly PHJet al., 2016, A structure-exploiting numbering algorithm for finite elements on extruded meshes, and its performance evaluation in Firedrake, Geoscientific Model Development, Vol: 9, Pages: 3803-3815, ISSN: 1991-9603

We present a generic algorithm for numbering and then efficiently iterating over the data values attached to an extruded mesh. An extruded mesh is formed by replicating an existing mesh, assumed to be unstructured, to form layers of prismatic cells. Applications of extruded meshes include, but are not limited to, the representation of 3D high aspect ratio domains employed by geophysical finite element simulations. These meshes are structured in the extruded direction. The algorithm presented here exploits this structure to avoid the performance penalty traditionally associated with unstructured meshes. We evaluate the implementation of this algorithm in the Firedrake finite element system on a range of low compute intensity operations which constitute worst cases for data layout performance exploration. The experiments show that having structure along the extruded direction enables the cost of the indirect data accesses to be amortized after 10-20 layers as long as the underlying mesh is well-ordered. We characterise the resulting spatial and temporal reuse in a representative set of both continuous-Galerkin and discontinuous-Galerkin discretisations. On meshes with realistic numbers of layers the performance achieved is between 70% and 90% of a theoretical hardware-specific limit.

JOURNAL ARTICLE

Homolya M, Ham DA, 2016, A Parallel Edge Orientation Algorithm for Quadrilateral Meshes, SIAM Journal on Scientific Computing, Vol: 38, Pages: S48-S61, ISSN: 1095-7197

One approach to achieving correct finite element assembly is to ensure that the local orientation of facets relative to each cell in the mesh is consistent with the global orientation of that facet. Rognes et al. have shown how to achieve this for any mesh composed of simplex elements, and deal.II contains a serial algorithm for constructing a consistent orientation of any quadrilateral mesh of an orientable manifold. The core contribution of this paper is the extension of this algorithm for distributed memory parallel computers, which facilitates its seamless application as part of a parallel simulation system. Furthermore, our analysis establishes a link between the well-known Union-Find algorithm and the construction of a consistent orientation of a quadrilateral mesh. As a result, existing work on the parallelization of the Union-Find algorithm can be easily adapted to construct further parallel algorithms for mesh orientations.

JOURNAL ARTICLE

McRae ATT, Mitchell L, Bercea, Ham DA, Cotteret al., 2016, Automated Generation and Symbolic Manipulation of Tensor Product Finite Elements, SIAM Journal on Scientific Computing, Vol: 38, Pages: S25-S47, ISSN: 1095-7197

We describe and implement a symbolic algebra for scalar and vector-valued finite elements, enabling the computer generation of elements with tensor product structure on quadrilateral, hexahedral, and triangular prismatic cells. The algebra is implemented as an extension to the domain-specific language UFL, the Unified Form Language. This allows users to construct many finite element spaces beyond those supported by existing software packages. We have made corresponding extensions to FIAT, the FInite element Automatic Tabulator, to enable numerical tabulation of such spaces. This tabulation is consequently used during the automatic generation of low-level code that carries out local assembly operations, within the wider context of solving finite element problems posed over such function spaces. We have done this work within the code-generation pipeline of the software package Firedrake; we make use of the full Firedrake package to present numerical examples.

JOURNAL ARTICLE

Ham D, 2015, firedrake: an automated finite element system

Automated multiplatform code generation for the finite element method.

SOFTWARE

Heinis T, Ham DA, 2015, On-the-Fly Data Synopses: Efficient Data Exploration in the Simulation Sciences, SIGMOD RECORD, Vol: 44, Pages: 23-28, ISSN: 0163-5808

JOURNAL ARTICLE

Luporini F, Varbanescu AL, Rathgeber F, Bercea G-T, Ramanujam J, Ham DA, Kelly PHJet al., 2015, Cross-Loop Optimization of Arithmetic Intensity for Finite Element Local Assembly, ACM Transactions on Architecture and Code Optimization, Vol: 11, Pages: 1-25, ISSN: 1544-3566

JOURNAL ARTICLE

Hill J, Popova EE, Ham DA, Piggott MD, Srokosz Met al., 2014, Adapting to life: ocean biogeochemical modelling and adaptive remeshing, OCEAN SCIENCE, Vol: 10, Pages: 323-343, ISSN: 1812-0784

JOURNAL ARTICLE

AMCG, 2013, Fluidity/The Imperial College Ocean Model

SOFTWARE

Bertolli C, Betts A, Loriant N, Mudalige GR, Radford D, Ham DA, Giles MB, Kelly PHJet al., 2013, Compiler optimizations for industrial unstructured mesh CFD applications on GPUs, Pages: 112-126, ISSN: 0302-9743

Graphical Processing Units (GPUs) have shown acceleration factors over multicores for structured mesh-based Computational Fluid Dynamics (CFD). However, the value remains unclear for dynamic and irregular applications. Our motivating example is HYDRA, an unstructured mesh application used in production at Rolls-Royce for the simulation of turbomachinery components of jet engines. We describe three techniques for GPU optimization of unstructured mesh applications: a technique able to split a highly complex loop into simpler loops, a kernel specific alternative code synthesis, and configuration parameter tuning. Using these optimizations systematically on HYDRA improves the GPU performance relative to the multicore CPU. We show how these optimizations can be automated in a compiler, through user annotations. Performance analysis of a large number of complex loops enables us to study the relationship between optimizations and resource requirements of loops, in terms of registers and shared memory, which directly affect the loop performance. © Springer-Verlag Berlin Heidelberg 2013.

CONFERENCE PAPER

Du J, Fang F, Pain CC, Navon IM, Zhu J, Ham DAet al., 2013, POD reduced-order unstructured mesh modeling applied to 2D and 3D fluid flow, COMPUTERS & MATHEMATICS WITH APPLICATIONS, Vol: 65, Pages: 362-379, ISSN: 0898-1221

JOURNAL ARTICLE

Farrell PE, Ham DA, Funke SW, Rognes MEet al., 2013, AUTOMATED DERIVATION OF THE ADJOINT OF HIGH-LEVEL TRANSIENT FINITE ELEMENT PROGRAMS, SIAM JOURNAL ON SCIENTIFIC COMPUTING, Vol: 35, Pages: C369-C393, ISSN: 1064-8275

JOURNAL ARTICLE

Ford R, Glover M, Ham D, Maynard C, Pickles S, Riley Get al., 2013, GungHo Phase 1 Computational Science Recommendations, Publisher: The Met Office, Forecasting Research Technical Report No: 587

REPORT

Markall GR, Rathgeber F, Mitchell L, Loriant N, Bertolli C, Ham DA, Kelly PHJet al., 2013, Performance-portable finite element assembly using PyOP2 and FEniCS, Pages: 279-289, ISSN: 0302-9743

We describe a toolchain that provides a fully automated compilation pathway from a finite element domain-specific language to low-level code for multicore and GPGPU platforms. We demonstrate that the generated code exceeds the performance of the best available alternatives, without requiring manual tuning or modification of the generated code. The toolchain can easily be integrated with existing finite element solvers, providing a means to add performance portable methods without having to rebuild an entire complex implementation from scratch. © 2013 Springer-Verlag.

CONFERENCE PAPER

Markall GR, Slemmer A, Ham DA, Kelly PHJ, Cantwell CD, Sherwin SJet al., 2013, Finite element assembly strategies on multi-core and many-core architectures, INTERNATIONAL JOURNAL FOR NUMERICAL METHODS IN FLUIDS, Vol: 71, Pages: 80-97, ISSN: 0271-2091

JOURNAL ARTICLE

Rognes ME, Ham DA, Cotter CJ, McRae ATTet al., 2013, Automating the solution of PDEs on the sphere and other manifolds in FEniCS 1.2, GEOSCIENTIFIC MODEL DEVELOPMENT, Vol: 6, Pages: 2099-2119, ISSN: 1991-959X

JOURNAL ARTICLE

Farrell PE, Funke SW, Ham DA, Rognes MEet al., 2012, dolfin-adjoint

The dolfin-adjoint project automatically derives the discrete adjoint and tangent linear models from a forward finite element model written in the Python interface to Dolfin.

SOFTWARE

Hill J, Piggott MD, Ham DA, Popova EE, Srokosz MAet al., 2012, On the performance of a generic length scale turbulence model within an adaptive finite element ocean model, OCEAN MODELLING, Vol: 56, Pages: 1-15, ISSN: 1463-5003

JOURNAL ARTICLE

Rathgeber F, Markall GR, Mitchell L, Loriant N, Ham DA, Bertolli C, Kelly PHJet al., 2012, PyOP2: A High-Level Framework for Performance-Portable Simulations on Unstructured Meshes, 25th ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis (SC), Publisher: IEEE, Pages: 1116-1123

CONFERENCE PAPER

Cotter CJ, Ham DA, 2011, Numerical wave propagation for the triangular P1(DG)-P2 finite element pair, JOURNAL OF COMPUTATIONAL PHYSICS, Vol: 230, Pages: 2806-2820, ISSN: 0021-9991

JOURNAL ARTICLE

Ham DA, 2010, On techniques for modelling coastal and ocean flow with unstructured meshes

THESIS DISSERTATION

Markall GR, Ham DA, Kelly PHJ, 2010, Towards generating optimised finite element solvers for GPUs from high-level specifications, International Conference on Computational Science (ICCS), Publisher: ELSEVIER SCIENCE BV, Pages: 1809-1817, ISSN: 1877-0509

CONFERENCE PAPER

Markall GR, Ham DA, Kelly PHJ, 2010, Generating Optimised Finite Element Solvers for GPU Architectures, International Conference on Numerical Analysis and Applied Mathematics, Publisher: AMER INST PHYSICS, Pages: 787-790, ISSN: 0094-243X

We show that optimal implementations of a finite element solver written for a Graphics Processing Unit and a multicore CPU require the use of different algorithms and data formats. This motivates the use of code generation in order to produce efficient, maintainable implementations of the finite element method for GPU architectures.

CONFERENCE PAPER

Cotter CJ, Ham DA, Pain CC, 2009, A mixed discontinuous/continuous finite element pair for shallow-water ocean modelling, OCEAN MODELLING, Vol: 26, Pages: 86-90, ISSN: 1463-5003

JOURNAL ARTICLE

Cotter CJ, Ham DA, Pain CC, Reich Set al., 2009, LBB stability of a mixed Galerkin finite element pair for fluid flow simulations, JOURNAL OF COMPUTATIONAL PHYSICS, Vol: 228, Pages: 336-348, ISSN: 0021-9991

JOURNAL ARTICLE

Ham DA, Pain CC, Hanert E, Pietrzak J, Schroeter Jet al., 2009, Special Issue: The sixth international workshop on unstructured mesh numerical modelling of coastal, shelf and ocean flows. Imperial College London, September 19-21, 2007, OCEAN MODELLING, Vol: 28, Pages: 1-1, ISSN: 1463-5003

JOURNAL ARTICLE

Ham D, Farrell P, Gorman G, Maddison Jet al., 2008, Spud

Spud is a generic system for defining, writing and processing options files for scientific computer models.The interfaces to scientific computer models are frequently primitive, under-documented and ad-hoc text files. This makes using and developing the model in question difficult and error-prone.With Spud, the model developer need only write a rules file (schema) which defines the options which the model takes and the relationship between them. The Spud component Diamond then provides an automatically generated graphical user interface which guides the user and validates the user's input against the schema. Diamond writes out an xml options file for use in Spud.The developer then uses libspud to read the options file into the model. Libspud can read any valid options file without further code modifications and makes the options available at any point in the model code at which they are required.Spud further provides the facility for the schema to be self-documenting and Diamond presents this documentation to the model user in a context-sensitive manner.

SOFTWARE

Ham DA, Farrell PE, Gorman GJ, Maddison JR, Wilson CR, Kramer SC, Shipton J, Collins GS, Cotter CJ, Piggott MDet al., 2008, Spud 1.0: generalising and automating the user interfaces of scientific computer models, GEOSCI MODEL DEV, Vol: 1, Pages: 125-146, ISSN: 1991-959X

The interfaces by which users specify the scenarios to be simulated by scientific computer models are frequently primitive, under-documented and ad-hoc text files which make using the model in question difficult and error-prone and significantly increase the development cost of the model. In this paper, we present a model-independent system, Spud, which formalises the specification of model input formats in terms of formal grammars. This is combined with an automated graphical user interface which guides users to create valid model inputs based on the grammar provided, and a generic options reading module which minimises the development cost of adding model options.Together, this provides a user friendly, well documented, self validating user interface which is applicable to a wide range of scientific models and which minimises the developer input required to maintain and extend the model interface.

JOURNAL ARTICLE

This data is extracted from the Web of Science and reproduced under a licence from Thomson Reuters. You may not copy or re-distribute this data in whole or in part without the written consent of the Science business of Thomson Reuters.

Request URL: http://wlsprd.imperial.ac.uk:80/respub/WEB-INF/jsp/search-html.jsp Request URI: /respub/WEB-INF/jsp/search-html.jsp Query String: respub-action=search.html&id=00464536&limit=30&person=true