Multi-layered abstractions for PDEs
Lead Research Organisation:
University of Oxford
Department Name: Oxford e-Research Centre
Abstract
Partial differential equations (PDEs) are the mathematical basis ofvast areas of science. From fluid problems such as flow past anaircraft or the circulation of the worlds oceans to structuralproblems in bridges or inside the bones of a body and even in theworld of financial options pricing, PDEs are the key description. Itis therefore unsurprising that computing solutions to PDEs consumes amassive proportion of high performance computing resources in bothindustry and academia.Hitherto, the software which solves PDEs has been written for specificsorts of hardware by people who had to be experts both in the sciencethey were modelling and in programming. This is an expensive anderror-prone process and, because it occurs in an informal way inengineering and science departments, has suffered from a lack of inputfrom modern computer science. However, what makes this proposalcritical for computational science are the large changes which areoccuring in hardware technology. The emergence of new massivelyparallel platforms, such as graphical processing units (GPUs) andmulticore CPU systems is requiring very different approaches tolow-level programming and, importantly, different approaches fordifferent hardware platforms. It also requires new research into thebest optimisation strategies for these platforms. The current approachto writing scientific software will not deliver the changes that arerequired within the industrial and government funding resources available.This project will break this paradigm by using multiple layers ofabstraction to present to scientists and engineers a way ofprogramming PDE problems which is independent of the hardware and tocomputer scientists, a program generation space in which they cangenerate optimal algorithms for PDEs on different hardware platformswithout becoming embroiled in domain science. In particular, we willdevelop a hardware abstraction layer (OP2) which will allow programsto be written by explicitly stating what is parallel. The OP2 layersoftware will then translate this into low-level code which utilisesthe parallelism in a particular hardware platform. For developersworking with the finite element method (FEM), an importantcomputational technique for PDEs, we will present an additional layerwhich will enable them to write the finite element problem in a highlevel language, UFL. This will then be translated to OP2 and thencedown to the hardware layer.We will demonstrate the effectiveness of this approach with two PhDprojects. One will look into the dispersion of polutants in urbansettings while the other will study the stress properties of surgicalbone implants. These are both important scientific questions whichcurrently suffer from a lack of resolution and therefore need to beable to employ the latest high performance hardware.
Publications

Bertolli C
(2013)
Languages and Compilers for Parallel Computing

Giles M
(2011)
Performance Analysis and Optimization of the OP2 Framework on Many-Core Architectures
in The Computer Journal

Giles M
(2011)
Performance analysis of the OP2 framework on many-core architectures
in ACM SIGMETRICS Performance Evaluation Review

Giles M
(2013)
Designing OP2 for GPU architectures
in Journal of Parallel and Distributed Computing

Giles MB
(2014)
Trends in high-performance computing for engineering calculations.
in Philosophical transactions. Series A, Mathematical, physical, and engineering sciences

Jammy S
(2016)
Block-structured compressible Navier-Stokes solution using the OPS high-level abstraction
in International Journal of Computational Fluid Dynamics


Mudalige G
(2013)
Design and initial performance of a high-level unstructured mesh framework on heterogeneous parallel systems
in Parallel Computing
Description | This project has successfully developed a high-level framework for the automatic parallelisation of unstructured grid applications on a wide variety of target architectures. |
Exploitation Route | It is currently being exploited for a major CFD application at Rolls-Royce. The software which has been developed has been made openly available. |
Sectors | Digital/Communication/Information Technologies (including Software),Education,Energy |
URL | http://www.oerc.ox.ac.uk/research/op2 |
Description | The OP2 library is being used by Rolls-Royce for HYDRA, its corporate CFD code which is used for analysis and design. |
First Year Of Impact | 2014 |
Sector | Aerospace, Defence and Marine |
Impact Types | Economic |
Description | AWE (2014) |
Amount | £24,984 (GBP) |
Organisation | Atomic Weapons Establishment |
Sector | Private |
Country | United Kingdom |
Start | 05/2014 |
End | 11/2014 |
Description | AWE (2015) |
Amount | £24,725 (GBP) |
Organisation | Atomic Weapons Establishment |
Sector | Private |
Country | United Kingdom |
Start | 06/2015 |
End | 12/2015 |
Description | Future-proof massively-parallel execution of multi-block applications |
Amount | £282,844 (GBP) |
Funding ID | EP/K038494/1 |
Organisation | Engineering and Physical Sciences Research Council (EPSRC) |
Sector | Public |
Country | United Kingdom |
Start | 08/2013 |
End | 08/2016 |
Description | High-level abstractions |
Amount | £23,353 (GBP) |
Organisation | Atomic Weapons Establishment |
Sector | Private |
Country | United Kingdom |
Start | 06/2013 |
End | 12/2013 |
Description | Rolls-Royce (2014) |
Amount | £29,960 (GBP) |
Organisation | Rolls Royce Group Plc |
Sector | Private |
Country | United Kingdom |
Start | 09/2014 |
End | 12/2014 |
Description | Rolls-Royce (2015) |
Amount | £36,396 (GBP) |
Organisation | Rolls Royce Group Plc |
Sector | Private |
Country | United Kingdom |
Start | 01/2015 |
End | 12/2015 |
Description | Siloet -- multicore platforms |
Amount | £30,395 (GBP) |
Organisation | Rolls Royce Group Plc |
Sector | Private |
Country | United Kingdom |
Start | 06/2012 |
End | 06/2013 |
Description | CUDA Programming on NVIDIA GPUs |
Form Of Engagement Activity | A talk or presentation |
Part Of Official Scheme? | No |
Geographic Reach | International |
Primary Audience | Postgraduate students |
Results and Impact | One week course on CUDA programming on NVIDIA GPUs, available to both academics and non-academics. Lots of the students have since gone on to use CUDA programming in their research. |
Year(s) Of Engagement Activity | 2008,2009,2010,2011,2012,2013,2014 |
URL | http://people.maths.ox.ac.uk/gilesm/cuda/ |