Juliacon 2024

SpeedyWeather.jl: Reinventing atmospheric models
2024-07-12 , While Loop (4.2)

SpeedyWeather.jl is a library to simulate and analyse the global atmospheric circulation. It implements several 2D and 3D models, as well as packages to analyse and visualise gridded data on the sphere. Running and analysing simulations can be interactively combined, enhancing user experience and productivity. To change, for example, how precipitation or surface mixing is simulated, SpeedyWeather.jl is easily extensible with new components that can be introduced interactively.


SpeedyWeather.jl is a fresh approach to atmospheric models that have been very influential in many areas of scientific and high-performance computing as well as climate change mitigation and adaptation. Most weather, ocean, and climate models are written in Fortran and have been developed over decades. From this tradition follows a specific programming style and associated user interface. SpeedyWeather.jl aims to overcome constraints of traditional Fortran-based models. The modern trend sees simulations in Fortran and data analysis in Python, making it virtually impossible to interact with various model components directly. In SpeedyWeather.jl, interfaces to the model components are exposed to the user.

A model in SpeedyWeather.jl is constructed bottom-up by first defining the discretization and any non-default model components with their respective parameters. All components are then collected into a single model object, which, once initialised, returns a simulation object. A simulation can be run, but also accessed and altered in all its components before and after to analyse or visualise the current variables or individual terms of the equations. One can also adjust some parameters before resuming the simulation, putting the user at the centre of the interaction with the model.

With SpeedyWeather.jl we hope to provide a platform for atmospheric modelling and in general an interactive model that makes difficult problems easy to simulate. Climate models that are user-friendly and easily extensible will suddenly make many complex research ideas possible.

Milan is a postdoctoral associate in climate modelling at the Massachusetts Institute of Technology. He received his PhD from Oxford working on low-precision climate computing and data compression. During his PhD, Milan established the concept of the bitwise real information content for data compression. He worked with posit numbers and stochastic rounding and invented a logarithmic fixed-point number format. He ran the first 16-bit weather and climate simulation on Fujitsu's A64FX, the CPU that powers Fugaku. He writes and maintains many Julia packages. Most recently, he wrote SpeedyWeather.jl, an atmospheric general circulation model with a focus on interactivity and extensibility to further accelerate research into computationally efficient weather and climate models.

This speaker also appears in: