kokkos / kokkos.github.io

Source code for kokkos.org pages
https://kokkos.org
1 stars 12 forks source link

Porting A Fortran-Native Numerical Weather Prediction Parameterization Scheme to GPUs using Kokkos and the Fortran Language Compatibility Layer #49

Open crtrott opened 10 months ago

timsliwinski-noaa commented 10 months ago

In modern weather forecasting, numerical weather prediction (NWP) has grown ever more complex with time as model developers seek to build up simulations of more detailed atmospheric motions and physical processes with tighter coupling to ocean and sea surface conditions, land surface processes, hydrological variability, and anthropogenic influences. With these growing complexities, the demand for processing power and limited NOAA operational supercomputer time continues to grow exponentially as NWP spatial and temporal resolutions are increased. At each time step of the model, each of these sub-models and parameterization subroutines must be run to include these coupled influences, and offloading these added influences to accelerator devices has been proven to offer time savings.

Since the vast majority of operational NWP source codes are still FORTRAN-based, previous efforts have mainly utilized OpenACC to minimize code changes for developers while achieving faster execution with accelerator devices. The major limiting factor for this approach is that OpenACC support across the various vendors of accelerator hardware is very limited, effectively reducing the model best performance to a subset of available hardware. Therefore, to avoid dictating vendor-specific hardware requirements to the greater atmospheric modeling community, Kokkos is being explored as an option to achieve accelerated performance portability broadly across multiple vendor accelerator devices.

In this presentation, we will provide a look at this porting process in the case of a very common and simple NWP boundary layer parameterization scheme. On top of using Kokkos to port computational kernels to accelerators, we also utilize the Kokkos FORTRAN Language Compatibility Layer (FLCL) as a bridge between the native FORTRAN code base and the C++ Kokkos-accelerated kernels. The experiences and challenges of using the FLCL will be described and the experiences of a first-time Kokkos user will also be included.

timsliwinski-noaa commented 10 months ago

In addition to the abstract above, I'd like to change the title for brevity's sake:

Porting A Fortran-Native Numerical Weather Prediction Parameterization Scheme to GPUs using Kokkos and the Fortran Language Compatibility Layer

timsliwinski-noaa commented 10 months ago

KokkosUG23Presentation.pdf