Michael B. Giles

dblp:00/7270 · also Michael Bryce Giles, Mike B. Giles · DBLP profile ↗
← Back
18ranked-venue papers
5as first author
1since 2021 · last 2023
0000-0002-5445-3721ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 12 · 1 first-authorTheory of computation · 4 · 3 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 2 · 1 first-author
YearPublicationVenuePosition
2023 Approximating Inverse Cumulative Distribution Functions to Produce Approximate Random Variables
abstract
For random variables produced through the inverse transform method, approximate random variables are introduced, which are produced using approximations to a distribution’s inverse cumulative distribution function. These approximations are designed to be computationally inexpensive and much cheaper than library functions, which are exact to within machine precision and, thus, highly suitable for use in Monte Carlo simulations. The approximation errors they introduce can then be eliminated through use of the multilevel Monte Carlo method. Two approximations are presented for the Gaussian distribution: a piecewise constant on equally spaced intervals and a piecewise linear using geometrically decaying intervals. The errors of the approximations are bounded and the convergence demonstrated, and the computational savings are measured for C and C++ implementations. Implementations tailored for Intel and Arm hardware are inspected alongside hardware agnostic implementations built using OpenMP. The savings are incorporated into a nested multilevel Monte Carlo framework with the Euler-Maruyama scheme to exploit the speedups without losing accuracy, offering speed ups by a factor of 5–7. These ideas are empirically extended to the Milstein scheme and the non-central χ 2 distribution for the Cox-Ingersoll-Ross process, offering speedups of a factor of 250 or more.
Michael B. Giles, Oliver Sheridan-Methven
ACM Trans. Math. Softw.1
2020 GPU Fast Convolution via the Overlap-and-Save Method in Shared Memory
abstract
We present an implementation of the overlap-and-save method, a method for the convolution of very long signals with short response functions, which is tailored to GPUs. We have implemented several FFT algorithms (using the CUDA programming language) which exploit GPU shared memory, allowing for GPU accelerated convolution. We compare our implementation with an implementation of the overlap-and-save algorithm utilizing the NVIDIA FFT library (cuFFT). We demonstrate that by using a shared memory based FFT we can achieved significant speed-ups for certain problem sizes and lower the memory requirements of the overlap-and-save method on GPUs.
Karel Adámek, Sofia Dimoudi, Michael B. Giles, Wes Armour
ACM Trans. Archit. Code Optim.3
2019 Random bit multilevel algorithms for stochastic differential equations
Michael B. Giles, Mario Hefter, Lukas Mayer, Klaus Ritter 0001
J. Complex.1
2019 Large-scale performance of a DSL-based multi-block structured-mesh application for Direct Numerical Simulation
Gihan R. Mudalige, István Z. Reguly, Satya P. Jammy, Christian T. Jacobs, Michael B. Giles, Neil D. Sandham
J. Parallel Distributed Comput.5
2019 Improving resilience of scientific software through a domain-specific approach
István Z. Reguly, Gihan R. Mudalige, Michael B. Giles, S. Maheswaran 0003
J. Parallel Distributed Comput.3
2018 Loop Tiling in Large-Scale Stencil Codes at Run-Time with OPS
abstract
The key common bottleneck in most stencil codes is data movement, and prior research has shown that improving data locality through optimisations that optimise across loops do particularly well. However, in many large PDE applications it is not possible to apply such optimisations through compilers because there are many options, execution paths and data per grid point, many dependent on run-time parameters, and the code is distributed across different compilation units. In this paper, we adapt the data locality improving optimisation called tiling for use in large OPS applications both in shared-memory and distributed-memory systems, relying on run-time analysis and delayed execution. We evaluate our approach on a number of applications, observing speedups of 2× on the Cloverleaf 2D/3D proxy applications, which contain 83(2D)/141(3D) loops, 3.5× on the linear solver TeaLeaf, and 1.7× on the compressible Navier-Stokes solver OpenSBLI. We demonstrate strong and weak scalability on up to 4608 cores of CINECA's Marconi supercomputer. We also evaluate our algorithms on Intel's Knights Landing, demonstrating maintained throughput as the problem size grows beyond 16GB, and we do scaling studies up to 8704 cores. The approach is generally applicable to any stencil DSL that provides per loop nest data access information.
István Z. Reguly, Gihan R. Mudalige, Michael B. Giles
IEEE Trans. Parallel Distributed Syst.3
2016 Vectorizing unstructured mesh computations for many-core architectures
abstract
Summary Achieving optimal performance on the latest multi‐core and many‐core architectures increasingly depends on making efficient use of the hardware's vector units. This paper presents results on achieving high performance through vectorization on CPUs and the Xeon‐Phi on a key class of irregular applications: unstructured mesh computations. Using single instruction multiple thread (SIMT) and single instruction multiple data (SIMD) programming models, we show how unstructured mesh computations map to OpenCL or vector intrinsics through the use of code generation techniques in the OP2 Domain Specific Library and explore how irregular memory accesses and race conditions can be organized on different hardware. We benchmark Intel Xeon CPUs and the Xeon‐Phi, using a tsunami simulation and a representative CFD benchmark. Results are compared with previous work on CPUs and NVIDIA GPUs to provide a comparison of achievable performance on current many‐core systems. We show that auto‐vectorization and the OpenCL SIMT model do not map efficiently to CPU vector units because of vectorization issues and threading overheads. In contrast, using SIMD vector intrinsics imposes some restrictions and requires more involved programming techniques but results in efficient code and near‐optimal performance, two times faster than non‐vectorized code. We observe that the Xeon‐Phi does not provide good performance for these applications but is still comparable with a pair of mid‐range Xeon chips. Copyright © 2015 John Wiley & Sons, Ltd.
István Z. Reguly, Endre László, Gihan R. Mudalige, Michael B. Giles
Concurr. Comput. Pract. Exp.4
2016 Algorithm 955: Approximation of the Inverse Poisson Cumulative Distribution Function
abstract
New approximations for the inverse of the incomplete gamma function are derived, which are used to develop efficient evaluations of the inverse Poisson cumulative distribution function. An asymptotic approximation based on the standard Normal approximation is particularly good for CPUs with MIMD cores, while for GPUs and other hardware with vector units, a second asymptotic approximation based on Temme's approximation of the incomplete gamma function is more efficient due to conditional branching within each vector. The accuracy and efficiency of the software implementations is assessed on both CPUs and GPUs.
Michael B. Giles
ACM Trans. Math. Softw.1
2016 Manycore Algorithms for Batch Scalar and Block Tridiagonal Solvers
abstract
Engineering, scientific, and financial applications often require the simultaneous solution of a large number of independent tridiagonal systems of equations with varying coefficients. Since the number of systems is large enough to offer considerable parallelism on manycore systems, the choice between different tridiagonal solution algorithms, such as Thomas, Cyclic Reduction (CR) or Parallel Cyclic Reduction (PCR) needs to be reexamined. This work investigates the optimal choice of tridiagonal algorithm for CPU, Intel MIC, and NVIDIA GPU with a focus on minimizing the amount of data transfer to and from the main memory using novel algorithms and the register-blocking mechanism, and maximizing the achieved bandwidth. It also considers block tridiagonal solutions, which are sometimes required in Computational Fluid Dynamic (CFD) applications. A novel work-sharing and register blocking--based Thomas solver is also presented.
Endre László, Michael B. Giles, Jeremy Appleyard
ACM Trans. Math. Softw.2
2016 Acceleration of a Full-Scale Industrial CFD Application with OP2
abstract
Hydra is a full-scale industrial CFD application used for the design of turbomachinery at Rolls Royce plc., capable of performing complex simulations over highly detailed unstructured mesh geometries. Hydra presents major challenges in data organization and movement that need to be overcome for continued high performance on emerging platforms. We present research in achieving this goal through the OP2 domain-specific high-level framework, demonstrating the viability of such a high-level programming approach. OP2 targets the domain of unstructured mesh problems and enables execution on a range of back-end hardware platforms. We chart the conversion of Hydra to OP2, and map out the key difficulties encountered in the process. Specifically we show how different parallel implementations can be achieved with an active library framework, even for a highly complicated industrial application and how different optimizations targeting contrasting parallel architectures can be applied to the whole application, seamlessly, reducing developer effort and increasing code longevity. Performance results demonstrate that not only the same runtime performance as that of the hand-tuned original code could be achieved, but it can be significantly improved on conventional processor systems, and many-core systems. Our results provide evidence of how high-level frameworks such as OP2 enable portability across a wide range of contrasting platforms and their significant utility in achieving high performance without the intervention of the application programmer.
István Z. Reguly, Gihan R. Mudalige, Carlo Bertolli, Michael B. Giles, Adam Betts, Paul H. J. Kelly, David Radford
IEEE Trans. Parallel Distributed Syst.4
2015 Design and Development of Domain Specific Active Libraries with Proxy Applications
abstract
Representative applications are versatile tools to evaluate new programming approaches, techniques and optimisations as a way to ensure continued high performance on future computing architectures. They make experimentation much easier before adopting changes/insights into the large scientific codes. In this paper we demonstrate the important role played by representative/proxy applications in designing and developing two high-level programming approaches: namely the OP2 and OPS domain specific (active) libraries. OP2 and OPS utilizes code generation techniques to produce automatic parallelisations from a high-level abstract problem declaration. The strategy delivers significant developer productivity to the domain scientist, while at the same time allowing computational experts to adopt the latest programming models and hardware-specific optimisations into the library and code generation tools to achieve near optimal performance. We show how representative applications have been a cornerstone in the development of OP2 and OPS and chart our experiences. In particular, we demonstrate how the range of hand-tuned optimized parallelisations of the CloverLeaf hydrodynamics mini-app allowed us to gain clear evidence that the OPS based code generated parallelisations were indeed as optimal as the hand-tuned versions. Additionally, with the use of a representative application from the CFD domain we demonstrate how the optimisations discovered and applied to proxy apps are indeed directly transferable to a large-scale industrial application at Rolls Royce plc. These results provide significant evidence into the utility of representative applications to improve productivity, enable performance portability and ultimately future-proof scientific applications.
István Z. Reguly, Gihan R. Mudalige, Michael B. Giles
CLUSTER3
2015 Analysis of parallel processor architectures for the solution of the Black-Scholes PDE
abstract
Common parallel computer microarchitectures offer a wide variety of solutions to implement numerical algorithms. The efficiency of different algorithms applied to the same problem vary with the underlying architecture which can be a multi-core CPU, many-core GPU, Intel's MIC (Many Integrated Core) or FPGA architecture. Significant differences between these architectures exist in the ISA (Instruction Set Architecture) and the way the compute flow is executed. The way parallelism is expressed changes with the ISA, thread management and customization available on the device. These differences pose restrictions to the implementable algorithms. The aim of the work is to analyze the efficiency of the algorithms through the architectural differences. The problem at hand is the one-factor Black-Scholes option pricing equation which is a parabolic PDE solved with explicit and implicit time-marching algorithms. In the implicit solution a scalar tridiagonal system of equations needs to be solved. The possible CPU, GPU implementations along with novel FPGA solutions with HLS (High Level Synthesis) will be shown. Performance is also analyzed and remarks on efficiency are made.
Endre László, Zoltán Nagy 0001, Michael B. Giles, István Z. Reguly, Jeremy Appleyard, Péter Szolgay
ISCAS3
2013 Designing OP2 for GPU architectures
Michael B. Giles, Gihan R. Mudalige, B. Spencer, Carlo Bertolli, István Z. Reguly
J. Parallel Distributed Comput.1
2013 Design and initial performance of a high-level unstructured mesh framework on heterogeneous parallel systems
Gihan R. Mudalige, Michael B. Giles, Jeyan Thiyagalingam, István Z. Reguly, Carlo Bertolli, Paul H. J. Kelly, Anne E. Trefethen
Parallel Comput.2
2012 Performance Analysis and Optimization of the OP2 Framework on Many-Core Architectures
abstract
This paper presents a benchmarking, performance analysis and optimization study of the OP2 ‘active’ library, which provides an abstraction framework for the parallel execution of unstructured mesh applications. OP2 aims to decouple the scientific specification of the application from its parallel implementation, and thereby achieve code longevity and near-optimal performance through re-targeting the application to execute on different multi-core/many-core hardware. Runtime performance results are presented for a representative unstructured mesh application on a variety of many-core processor systems, including traditional X86 architectures from Intel (Xeon based on the older Penryn and current Nehalem micro-architectures) and GPU offerings from NVIDIA (GTX260, Tesla C2050). Our analysis demonstrates the contrasting performance between the use of CPU (OpenMP) and GPU (CUDA) parallel implementations for the solution of an industrial-sized unstructured mesh consisting of about 1.5 million edges. Results show the significance of choosing the correct partition and thread-block configuration, the factors limiting the GPU performance and insights into optimizations for improved performance.
Michael B. Giles, Gihan R. Mudalige, Z. Sharif, Graham R. Markall, Paul H. J. Kelly
Comput. J.1
2012 Fat versus Thin Threading Approach on GPUs: Application to Stochastic Simulation of Chemical Reactions
abstract
We explore two different threading approaches on a graphics processing unit (GPU) exploiting two different characteristics of the current GPU architecture. The fat thread approach tries to minimize data access time by relying on shared memory and registers potentially sacrificing parallelism. The thin thread approach maximizes parallelism and tries to hide access latencies. We apply these two approaches to the parallel stochastic simulation of chemical reaction systems using the stochastic simulation algorithm (SSA) by Gillespie [14]. In these cases, the proposed thin thread approach shows comparable performance while eliminating the limitation of the reaction system's size.
Guido Klingbeil, Radek Erban, Michael B. Giles, Philip K. Maini
IEEE Trans. Parallel Distributed Syst.3
2011 STOCHSIMGPU: parallel stochastic simulation for the Systems Biology Toolbox 2 for MATLAB
abstract
MOTIVATION: The importance of stochasticity in biological systems is becoming increasingly recognized and the computational cost of biologically realistic stochastic simulations urgently requires development of efficient software. We present a new software tool STOCHSIMGPU that exploits graphics processing units (GPUs) for parallel stochastic simulations of biological/chemical reaction systems and show that significant gains in efficiency can be made. It is integrated into MATLAB and works with the Systems Biology Toolbox 2 (SBTOOLBOX2) for MATLAB. RESULTS: The GPU-based parallel implementation of the Gillespie stochastic simulation algorithm (SSA), the logarithmic direct method (LDM) and the next reaction method (NRM) is approximately 85 times faster than the sequential implementation of the NRM on a central processing unit (CPU). Using our software does not require any changes to the user's models, since it acts as a direct replacement of the stochastic simulation software of the SBTOOLBOX2. AVAILABILITY: The software is open source under the GPL v3 and available at http://www.maths.ox.ac.uk/cmb/STOCHSIMGPU. The web site also contains supplementary information. CONTACT: [email protected] SUPPLEMENTARY INFORMATION: Supplementary data are available at Bioinformatics online.
Guido Klingbeil, Radek Erban, Michael B. Giles, Philip K. Maini
Bioinform.3
2002 Grid Services in Action: Grid Enabled Optimisation and Design Search
abstract
We are developing a Grid Enabled Optimisation and Design Search system (GEODISE). It offers grid-based access to a state-of-the-art collection of optimisation and design search tools, industrial strength analysis codes, and distributed computing and data resources.
Simon J. Cox 0001, Richard P. Boardman, Liming Chen 0001, Mihai C. Duta, Murat Hakki Eres, Matt J. Fairman, Zhuoan Jiao, Michael B. Giles, Carole A. Goble, Graeme E. Pound, Andy J. Keane, Mark Scott, Nigel Shadbolt, Feng Tao 0001, Jasmin L. Wason
HPDC8