The Met Office’s new GungHo/LFRic-based, next-generation atmosphere model has been designed from the outset to be able to make use of ongoing developments in computer hardware, particularly with an eye to the significant computational performance now offered by GPUs. This has been achieved by following a so-called ‘separation of concerns’ approach where science-aspects of the code are kept separate from the code that explicitly deals with computational performance. Since the latter inevitably requires tuning to get the best from a particular computer, it is in fact generated automatically by a tool called PSyclone (https://github.com/stfc/PSyclone). This allows different versions of the code to be created, depending on the computer hardware that is available.
However, many of the models in use at the Met Office are developed (in whole or in part) by external organisations, do not follow a separation of concerns and there is often no scope for a wholesale refactoring of the code base. The question then arises: “How can such models make use of recent and future developments in computer hardware?”
The Marine Systems (NEMO) Design project was created to answer this question for a number of important models: NEMO (ocean modelling framework: https://www.nemo-ocean.eu/), MEDUSA (biogeochemical model: https://ukesm.ac.uk/ukesm-component-models/ocean-biogeochemistry/ocean-biogeochemistry-ukesm1/) and NEMOVAR (variational model used in data assimilation for NEMO: https://www.ecmwf.int/en/elibrary/11174-nemovar-ocean-data-assimilation-system-implemented-ecmwf-ocean-analysis-system-4).
Led by the Science and Technology Facilities Council’s Hartree Centre (the original developers of PSyclone), the project brought together experts from the National Oceanography Centre, the National Centre for Atmospheric Science and the Met Office to investigate the use of PSyclone for these models. Since the models do not have an explicit separation of concerns, PSyclone has been extended such that it can instead use knowledge derived from the coding standards followed by the model developers. This then enables the existing code to be transformed into a form suitable for execution on e.g. a GPU.
Using this approach, the project has successfully demonstrated that all three of the models can be transformed by PSyclone so as to execute on GPU. While work continues on NEMOVAR, the NEMO and MEDUSA models can both achieve good performance when running on GPUs instead of CPUs. This paves the way for users of these models to be able to run on the increasing number of machines that rely on GPUs for the vast majority of their compute power.