Back

Minisymposium Presentation

What if Weather and Climate Models were Written in Python?

Wednesday, June 5, 2024
10:00
-
10:30
CEST
Climate, Weather and Earth Sciences
Climate, Weather and Earth Sciences
Climate, Weather and Earth Sciences
Chemistry and Materials
Chemistry and Materials
Chemistry and Materials
Computer Science and Applied Mathematics
Computer Science and Applied Mathematics
Computer Science and Applied Mathematics
Humanities and Social Sciences
Humanities and Social Sciences
Humanities and Social Sciences
Engineering
Engineering
Engineering
Life Sciences
Life Sciences
Life Sciences
Physics
Physics
Physics

Presenter

Oliver
Fuhrer
-
MeteoSwiss

* Head Numerical Prediction MeteoSwiss* Lecturer at Department of Environmental Systems Sciences ETH Zurich* Ph.D., 2005, ETH Zurich, Physics and Atmospheric Science* Lead of the development of the Swiss operational high-resolution weather forecasting models.* Internationally recognized scientific leader in the development of energy-efficient computing systems for climate modeling and weather prediction.* Swiss ICT Award 2016 for outstanding IT-based projects and services.

Description

As of today, the majority of weather and climate models are implemented in Fortran and extended with a selection of compiler directives to enable execution of multicore CPUs, vector units or graphics processing units (GPUs). The consequence is that developers struggle to keep pace with a repidly evolving HPC software and hardware ecosystem and are not able to leverage efficiently current and emergy leadership class supercomputing infrastructures. Also, developer productivity in resolving problems or introducing new features is generally low.

But what if weather and climate models were implemented in Python? We present Pace, a Python-based performance portable implementation of a subset of the x-SHiELD model of NOAA/GFDL. We demonstrate scaling Pace to 4000 GPUs on the Piz Daint supercomputer at CSCS and achieving a 3.9x speedup over the Fortran reference code on CPUs. Pace is a proof of concept that high-level languages like Python can achieve performance portability in atmopsheric models and provide a more productive development environment. Additionally, Pace enables entirely novel use cases and workflows such as easy integration of machine learning components, taking full advantage of the Python ecosystem. We finish with an outlook for the ICON model.

Authors