To main content

GPU-accelerated simulation and numerical methods

We develop numerical methods and simulation software that make effective use of GPUs and modern computing hardware. By combining mathematical insight with parallel programming, we help you reduce computation time, handle larger models and run more simulations. Our experience spans early pioneering work on graphics processors through to the acceleration of demanding industrial simulators.

Contact persons

What we can help you with

Faster computations can make it possible to explore more alternatives, use more detailed models or deliver results in time to support a decision. We develop and adapt numerical methods so that simulation tools can make effective use of the parallelism and memory resources available in modern hardware.

We can help you:

  • Identify bottlenecks and assess the potential for GPU acceleration in existing software.
  • Develop and adapt discretisations, solution methods and preconditioners for parallel computation.
  • Improve data structures, memory access and data transfers between CPUs and GPUs.
  • Integrate accelerated computational components into simulators and adapt software to different hardware platforms.
  • Organise computations for large models, ensembles and extensive parameter studies.
  • Evaluate performance, scalability and numerical accuracy on representative problems.

Does your simulator take too long to run, or are computational limits preventing you from carrying out the studies you need? Contact our Applied Computational Science research group.

Connecting mathematics, algorithms and hardware

Effective GPU utilisation depends on how computations are formulated and organised. A method that performs well on a CPU may have dependencies or memory access patterns that limit its performance on a GPU. In some cases, choosing a different numerical method offers greater gains than optimising the implementation of the original one.

We therefore consider model formulation, algorithms and implementation together. This may involve reordering computations, combining operations, reducing data movement or selecting solution methods that expose more parallelism. The aim is to reduce overall computation time while meeting requirements for accuracy and robustness.

From local computations to coupled equation systems

Explicit methods for transport and wave propagation often involve many local computations that can run in parallel. Efficient grid organisation and effective use of memory bandwidth are central to their performance. We have extensive experience with these methods for conservation and balance laws, including applications to water flows.

Implicit simulators also require the solution of large, coupled equation systems. Their performance depends on the interplay between system assembly, sparse matrix operations, iterative solvers and preconditioning. We work on adapting these components to GPUs and integrating acceleration into the simulator's overall computational workflow.

Our work on GPU acceleration for OPM Flow illustrates how we develop computational components within an established reservoir simulator.

One large model or many simulations

Computational demand can arise from the size of a single model or from the number of times it needs to be run. Uncertainty analysis, data assimilation, model calibration and optimisation often require many related simulations. It is therefore important to consider both parallelism within each simulation and the distribution of independent runs.

We adapt the computational approach to the task and the available resources. For time-critical applications, the priority may be to obtain a result as quickly as possible. For ensemble studies, it may be more important to complete as many simulations as possible within a given time and resource budget.

GPU Ocean uses GPU acceleration to run ensembles of ocean models, supporting uncertainty analysis and the integration of simulations with observations.

Integration and portability

An accelerated component must work effectively with the rest of the software. Data transfers between CPUs and GPUs, synchronisation and repeated conversions can offset the gains from fast individual operations. We therefore examine the complete computational workflow and assess which data and operations should remain on the accelerator.

We also develop software structures and abstractions that support different hardware platforms without requiring entirely separate implementations of the same numerical method. The choice of tools and programming model must balance performance, portability and future development needs.

Performance that matters in practice

A fast computational kernel is valuable when it improves the performance of the overall simulation. We therefore measure both individual components and complete simulation runs, accounting for problem size, memory use, convergence and data transfers.

Comparisons must use equivalent requirements for numerical accuracy. Changes in arithmetic precision, solver tolerances or algorithms can affect both runtime and results. We use representative test problems to assess the benefits and establish when a particular approach is advantageous.

More than two decades of GPU computing

We were among the early pioneers using programmable graphics cards to solve conservation and balance laws numerically in the early 2000s. Our introductory chapter from 2007 describes how high-resolution numerical methods can be adapted to graphics processors.

Hardware and development tools have changed substantially since then. The underlying lesson remains relevant: achieving good performance requires an understanding of both the mathematical problem and how the computations are executed. We continue to apply this combination in the development of simulators and numerical components for research and industry.

Further reading

Software

GPU Ocean

GPU Ocean

A GPU-accelerated simulation framework for running large ensembles of simplified ocean models for real-world domains.

Jutul

Jutul

Experimental Julia framework for fully differentiable multiphysics simulators based on implicit finite-volume methods with automatic differentiation.

Projects

SWAMP: the Surface Water Analysis and Modelling Project

SWAMP: the Surface Water Analysis and Modelling Project

Start:
End:

SWAMP aims at developing open-source software for simulation and analysis of surface water caused by flooding and intense rain, and using this simulation software to make demonstrators show casing our experience and expertise.

ACROSS

ACROSS

Start:
End:

ACROSS aims to combine traditional High-Performance Computing (HPC) techniques and workflows with Artificial Intelligence (AI) and Big Data analytic techniques to enhance productivity and efficiency.