Supercomputing

Overview

Researchers at NASA's Global Modeling and Assimilation Office (GMAO) have been examining the potential of integrating domain-specific languages (DSLs) into the development of the Goddard Earth Observing System (GEOS) model, which simulates the Earth’s atmosphere and oceans. More specifically, the DSL being examined is GridTools for Python (GT4Py), developed by the Swiss Federal Institute of Technology in Zürich (ETH Zürich) with contributions from teams at Vulcan, Inc.; MeteoSwiss; NOAA’s Geophysical Fluid Dynamics Laboratory (GFDL); and the University of Washington.

GT4Py is a front-end software framework that enables researchers to write and develop grid-based stencil algorithms in Python code. For high-performance computing (HPC) architectures, ETH Zürich developed a compiler that compiles the Python code into machine code. This capability enables researchers to easily develop performance-portable code for running Earth system models on current and future HPC architectures.

Project Details

Screen capture of converting a Fortran physics subroutine into GridTools for Python.

The GMAO is in the initial stages of evaluating GT4Py’s capabilities by assisting Vulcan’s Climate Modeling group with the porting of Fortran physics routines within GFDL’s FV3 code into Python using GT4Py. The examined and ported routines involve computing integrated atmospheric angular momentum and atmospheric turbulence. During the porting process, the GMAO works closely with the Vulcan Climate Modeling group to provide both feedback and suggestions about the framework.

Results and Impact

"GridTools for Python (GT4Py) is a useful tool for researchers to take advantage of novel architectures and reduce development and porting time."

Chris Kung, NASA Goddard

The project is forward-looking for the GMAO, which supports and develops the GEOS model. GEOS predictions support NASA's Earth Observation missions and facilitate the planning and operation of other NASA missions. GEOS is currently optimized for traditional HPC computing platforms. On the future horizon, technology and computing companies will introduce computing platforms that utilize a variety of architectures such as general-purpose GPUs (GPGPUs), vector engines, and ARM processors. Each architecture will incorporate computing features that are designed to accelerate or improve the throughput of codes. The proliferation of HPC architectures hinders researchers, since it has been difficult and time-consuming to adopt novel architectures that deviate from traditional programming paradigms. Because the DSL hides the details of incorporating the computing hardware and architecture from the developer, employing DSLs may prove to be a useful tool for researchers to take advantage of novel architectures and reduce development and porting time.

Why HPC Matters

Graph showing flowchart used to build and compile GridTools for Python code to native compilers.

Global atmospheric and ocean simulations such as those used by GEOS require significant HPC resources to examine such a large domain of interest using first principles of physics. These simulations feed information into the planning and execution of NASA missions affected by actions of the Earth’s atmosphere and oceans. Having accurate and immediate turnaround of such models enables NASA to be more effective and efficient with its missions.

What's Next

NASA’s GMAO will continue its close collaboration with Vulcan and research other ways to improve GT4Py capabilities.

Related Links

Chris Kung, NASA Goddard Space Flight Center
christopher.w.kung@nasa.gov