NCAR-WY - Briley James, G. Dylan Dickerson, Matthew Stack
Assessing Portability of MOM6 to GPUs Using OpenACC
Within earth system modelling, the major components - ocean and atmosphere - consume significant amounts of runtime. The Modular Ocean Model version six (MOM6) is a commonly used model to simulate oceans. To optimize the runtime of MOM6, one approach would be to port the compute intensive portions of the model onto GPUs. Combined with the previous efforts of CPU parallelization of the remaining code in MOM6, it would lead to an accelerated heterogeneous execution and the potential to run higher resolution models. However, the challenge to such a task would be to port large volumes of code in a short span of time while retaining performance portability across CPUs and GPUs. This project aims to adopt and adapt a development cycle to port the barotropic portion of the dynamical core, a compute intensive portion of MOM6, onto GPUs and evaluate its performance and performance portability. A development cycle based on profiling, porting, optimization, and validation was established. Midstream development switched over to a standalone, ocean-only, execution of MOM6. The new execution method allowed for an ideal test case that could reduce the build and execution time. Thus, this improved developers’ efficiency to port and validate, contributing to the acceleration of the work cycle. Further refinements came from the development of scripts to verify the validity of the model output and to automate the collection of data for benchmarking. This development cycle allowed 4,369 lines to be ported in just under six weeks. The performance acceleration of the ported code, and its performance portability have been documented.
Mentors: Supreeth Suresh, Cena Miller