The Met Office is responsible for providing wave forecasts which are used by a wide range of customers globally in applications including maritime traffic, offshore operations or public safety. These forecasts are delivered using the WAVEWATCH III® wave model, which represents the complex physical phenomena involved in wave generation and wave propagation across the sea. Originally developed in the 1990s at the US National Oceanic and Atmospheric Administration (NOAA), WAVEWATCH III® is open source and is actively developed by many researchers in the international community. The Met Office is one of the few Trusted Partner organisations hosting a fork of the model code base.
Like most scientific codes, WAVEWATCH III® has been designed to run on CPUs, but in recent years several initiatives have shown success in using GPUs for scientific code applications. CPU and GPU architectures are fundamentally different and run software in different ways. GPUs were originally designed for image rendering and can run thousands of small tasks in parallel. This contrasts with the traditional approach of CPUs, which run a comparatively smaller number of tasks (i.e. dozens) while delivering a higher computational power for each one of them. This significantly affects the structure of code and poses a challenge to develop software that can run efficiently on both architectures at the same time.
We have successfully developed a prototype of WAVEWATCH III® that can run its most computationally demanding parts on GPUs, some of them with a significant performance increase. In the coming years, the Met Office will face a significant challenge in working towards developing a GPU-enabled wave model that retains its performance on CPUs. Our work with this prototype has allowed us to understand the current limitations of the WAVEWATCH III® software infrastructure in GPUs, as well as the required changes to adapt it to this architecture.