GPU Ocean
A GPU-accelerated simulation framework for running large ensembles of simplified ocean models for real-world domains.
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:
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.
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.
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.
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.
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.
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.
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.
The goal of this project is to improve the performance of the OPM Flow reservoir simulator by exploiting GPU acceleration.
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.
GOSPEL aims to leverage GPU-accelerated simplified ocean models to investigate and estimate uncertainties in short-term predictions of the spread and fate of oil spill at sea.
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.
It is important to predict the drift trajectories of oil spills, ice bergs, and other floating objects to protect the marine environment and for safe offshore operations.