Separating physics and performance: Using Python to implement fast and maintainable climate models.

CG Auditorium
Rhea George

Most global climate models have been optimized for performance on a specific hardware architecture, and typically cannot run efficiently on GPUs without extensive effort that increases the complexity of the code. This inhibits our ability to leverage emerging supercomputers to run at high (e.g. storm-resolving scale) resolutions that help reduce uncertainty in global climate projections. Decoupling the expression of the numerical algorithm from the hardware specific optimization improves the maintainability of a climate model and makes it easier to achieve high performance on a variety of hardware architectures. Such a separation of concerns is possible using a domain-specific language (DSL) embedded in Python and a compiler toolchain ensuring the generation of high-performance code. We will demonstrate the potential of this strategy using a Python implementation of the Finite Volume-cubed (FV3) dynamical core, backed by the GT4Py API that provides access to the GridTools compiler toolchain. We will discuss design decisions, testing strategy and the use of containers for development, as well as lessons learned from this approach.

Speaker Description: 

Rhea George has a doctorate in Atmospheric Sciences from the University of Washington, an undergraduate Computer Science bachelor’s degree from University of California Berkeley, and worked as a software engineer in renewable energy before joining Vulcan for this climate modeling project. 

Event Category: