Skip to main content

Optimizing Weather Forecasting — My Work on the COSMO C++ Dynamical Core

Table of Contents

Advancing Weather Modeling with MeteoSwiss and C2SM
#

From May 2015 to December 2017, I had the opportunity to lead the development and maintenance of the C++ Dynamical Core for the COSMO weather model at MeteoSwiss, Switzerland’s national weather and climate service. This work was carried out in collaboration with the Center for Climate Systems Modeling (C2SM) at ETH Zürich, where I was embedded as part of their climate and weather research group.

What is COSMO?
#

The COSMO model (Consortium for Small-scale Modeling) is a regional weather prediction model used by several European countries. Traditionally written in Fortran, COSMO simulates atmospheric processes on a structured rectangular grid.

To run COSMO, organizations must be part of the COSMO consortium, which ensures collaborative development and scientific validation.

Today, COSMO is being phased out in favor of ICON, a newer model developed by the German Weather Service (DWD), which operates on a more modern icosahedral grid structure.

Bringing COSMO to GPUs
#

My primary responsibility was developing and maintaining the C++ Dynamical Core, a high-performance GPU-accelerated module responsible for solving the fluid dynamics equations at the heart of COSMO’s numerical weather predictions.

A computation step of the COSMO weather model

This effort enabled the operational deployment of GPU-based forecasting systems at MeteoSwiss, including COSMO-1, COSMO-E, and COSMO-7, which deliver high-resolution forecasts for the Swiss Alps and surrounding regions.

Image showing the COSMO-1 compute domain.
COSMO-1 topography and compute domain

Operational Integration at MeteoSwiss
#

Beyond software development, I was directly involved in the operational integration of the C++ Dynamical Core into the forecasting pipeline at MeteoSwiss. This hands-on experience gave me a deep appreciation of how high-performance computing translates into actionable weather forecasts.

As part of our outreach and knowledge-sharing efforts, we presented a poster at the PASC 2017 Conference highlighting the architecture and deployment of the C++ Dynamical Core in the operational setup:

PASC 2017 poster (PDF available here)

You can find more technical information and resources on the C2SM Wiki.

Final Thoughts
#

This project was both a technical and scientific challenge, and I’m grateful to have been part of a team that pushed the boundaries of operational weather forecasting. Special thanks to my former supervisor at MeteoSwiss, Oliver Fuhrer, for supporting and encouraging the public dissemination of this work.