  The Unified Model (UM) code supports simulation of weather, climate and earth
system processes. It is primarily developed by the UK Met Office, but in recent
years a wider community of users and developers have grown around the code.
Here we present results from the optimisation work carried out by the UK
National Centre for Atmospheric Science (NCAS) for a high resolution
configuration (N512 $\approx$ 25km) on the UK ARCHER supercomputer, a Cray
XC-30. On ARCHER, we use Cray Performance Analysis Tools (CrayPAT) to analyse
the performance of UM and then Cray Reveal to identify and parallelise serial
loops using OpenMP directives. We compare performance of the optimised version
at a range of scales, and with a range of optimisations, including altered MPI
rank placement, and addition of OpenMP directives. It is seen that improvements
in MPI configuration yield performance improvements of between 5 and 12\%, and
the added OpenMP directives yield an additional 5-16\% speedup. We also
identify further code optimisations which could yield yet greater improvement
in performance. We note that speedup gained using addition of OpenMP directives
does not result in improved performance on the IBM Power platform where much of
the code has been developed. This suggests that performance gains on future
heterogeneous architectures will be hard to port. Nonetheless, it is clear that
the investment of months in analysis and optimisation has yielded performance
gains that correspond to the saving of tens of millions of core-hours on
current climate projects.
