Weather and climate prediction systems are highly complex and comprise many different component models. Initialisation procedures are required to determine the starting conditions for each of the component models from observations (using so called “data assimilation” techniques). This itself needs the observations to be processed and quality controlled in a way that is consistent with the system’s characteristics. Allowance also has to be made for the uncertainty in those starting conditions as well as in the model components themselves. And then the data that the system produces needs to be managed to permit products such as forecasts to be visualised, verified, post-processed for products, and archived.
This work addresses the larger, most vulnerable components. It will also seek to exploit commonalities of design across existing families of models. The focuses are:
- Optimising the data layout and memory access design of a new atmospheric model that integrates the equations governing how the air evolves in time;
- Improving the performance and flexibility of the chemical and aerosol solver which determines how the composition of the atmosphere evolves and how constituents are injected into, and removed from the atmosphere;
- Agreeing and implementing a strategy for applying a separation of concerns approach to the NEMO family of marine systems codes (ocean model, ocean initialisation, and a sea-ice model);
- Researching and developing modifications to allow the underlying wave model, which determines the state of the sea/ocean surface, to exploit shared memory architectures;
- Delivering a new framework for atmospheric observation processing and data assimilation that is more flexible in being able to exploit new observation types and to make it deployable across different architectures;
- Delivering a new framework for the verification and post-processing systems that is fit for future deployments of next generation models.
With domain experts working with computational scientists and algorithmic experts, the research will explore:
- Co-design: Whether (and if so how) the existing algorithms need to be redesigned to make those algorithms more scalable (so that the cost of the algorithm increases linearly with any increase in the number of degrees of freedom). This will require exposing as much as possible those elements of a process that do not depend on other elements (removing unnecessary serial operations and replacing them with parallel ones) and implementing more inherently local algorithms.
- Separation of concerns: How to ensure that any changes needed to apply an algorithm optimally on alternative supercomputer architectures can be implemented in an automated manner. This requires the application of a Domain Specific Language (DSL). The desire here is to have a DSL that is generic enough to encompass the requirements of the use case whilst remaining as specific as possible. The research will determine how achievable that desire is and, if it is not, then how limited can its relaxation be made (e.g. what is the fewest number or types of DSLs needed or how branched does one DSL need to be?).