MPAS-Dev / MPAS-Model

Repository for MPAS models and shared framework releases.
231 stars 308 forks source link

Enable GPU execution of MPAS-Atmosphere scalar transport through OpenACC #1176

Closed mgduda closed 1 month ago

mgduda commented 1 month ago

This PR enables the scalar transport routines in MPAS-Atmosphere to run on GPUs through the addition of OpenACC directives. Specifically, the atm_advance_scalars_work and atm_advance_scalars_mono_work routines have been ported via OpenACC.

Additionally, timing information for OpenACC data transfers in the scalar transport routines is captured and reported in the log file by two new timers:

To minimize data movement, the MPAS-Atmosphere dycore has also been modified to copy all invariant fields needed by the scalar transport routines onto the device before the first dynamics timestep and to delete those invariant fields after the last dynamics timestep.