Software Engineering

The ASTG provides modern software engineering solutions that leverage cutting-edge programming paradigms and the latest in High-end computing technologies to enable better science and enhance NASA capabilities.

Software Engineering

Towards an Exascale Performant GEOS

Background

GEOS resource requirements
GMAO target resource requirements.

The Goddard Earth Observing Systems (GEOS) model is publicly available Earth Systems numerical model developed by NASA (and other in the Earth Science community) to address questions related to Earth Science. It consist of four major components: an Atmospheric General Circulation Model, an Atmospheric-Ocean General Circulation Model, a Chemistry-Climate Model, and a Chemistry-Transport Model. NASA’s Global Modeling and Assimilation Office (GMAO) conducts modeling and assimilation activities that support NASA’s current suite of Earth Observation missions, uses data gathered by past and current missions, and help plan for future observing systems. Within the next few years, GMAO goals will require an exascale performant GEOS with a target performance of ~600 PFLOPs by 2025! In support of this effort, software engineers in the ASTG are collaborating with GMAO and working to equip GEOS with the software infrastructure that will allow it to leverage large GPU-enable computing systems to meet its goals.

Leveraging Heterogeneous Architectures and Performance Portability

With the largest supercomputers powered by Graphical Processing Units (GPUs), weather and climate codes need to adapt to take advantages of these resources. Weather and climate codes, such as GEOS, are large and complex, so it is also important to achieve performance portability using software layers that allow a single codebase to run on different architectures. This can be achieved by using a Domain Specific Language (DSL) that provides a set of APIs that can be used to build weather and climate models, and libraries optimized for different hardware. Recently, the STencil Loop LAnguage (STELLA), an embedded domain-specific language, was developed that provides this functionality, and can be used to build dynamical cores that run on both CPU and GPU backends [1]. As an example, the COSMO dynamical was successfully ported with GridTools to provide a performance boost by leveraging GPUs. For more information, see the GridTools github page.

GT4py

The dynamical core used in GEOS was ported by AI2 using the python-based GridTools. The ASTG is working with GMAO, AI2, and Nvidia to integrate this into GEOS to provide a performance portable dynamical core that can leverage hardware accelerators.

OpenACC

Not all components of the GEOS model can be ported with GridTools. To achieve a performant GEOS, the ASTG is porting GEOS components with OpenACC. OpenACC (for Open Accelerators) is a directive-based parallel program paradigm that provides portability on both CPUs and GPUs.

Reference

[1] Fuhrer, Oliver, et al. “Towards a performance portable, architecture agnostic implementation strategy for weather and climate models.” Supercomputing frontiers and innovations 1.1 (2014): 45-62.

[2] Afanasyev, Anton, et al. “GridTools: A framework for portable weather and climate applications.” SoftwareX 15 (2021): 100707.