ARCHER Webinar: Lagrangian dynamical core for Cloud Model
Channel: ARCHER UK National Supercomputing Service
Date: 2019-11-15

Steven Boeing, University of Leeds and Gordon Gibb, EPCC
We discuss the development of an essentially Lagrangian model of atmospheric cloud dynamics, carried out in the eCSE project ‘A fully Lagrangian Dynamical Core for the Met Office/NERC Cloud Model’. We describe the work, which aimed to incorporate the ‘Moist Parcel in Cell‘ (MPIC) code into the Met Office/NERC Cloud Model (MONC), thereby granting it MPI parallelism and the ability to scale beyond a single node.

In the Moist-Parcel-In-Cell (MPIC) model, parcels represent both the thermodynamic and the dynamical properties of the flow. The representation of parcel properties is fully Lagrangian, but an efficient grid-based solver calculates parcel advection velocities. The Lagrangian approach of MPIC has a number of advantages: in particular, parcel properties are naturally conserved, and the amount of mixing between parcels can be explicitly controlled. MPIC also lends itself well to parallelisation, because most of the communication required between processors is local, and an efficient solver is available where global communication is required.

First, we describe the modifications to MONC in order for it to be parcel-aware. Subsequently, we outline the implementation of MPIC’s physics into MONC. We then provide an in-depth comparison of MPIC with the newly developed code, and investigate how it scales to many thousands of MPI processes. Finally we discuss the limitations of the code, and future work to be carried out to mitigate these limitations. We found that the code can scale up to many thousands of cores for large problem sizes, although the main limiter of performance at scale are the Fourier Transform routines. Despite good MPI performance from the code, OpenMP performance is poor, achieving a speedup of only 3 on 12 threads. Overall, on a single node the new code performs better than MPIC does, carrying out more parcel operations per core per second.

We will also describe how users can install the code and develop new components.