SIParCS 2019 - G. Dylan Dickerson
Porting CESM-MOM6 Model on to Multiple Architectures
The past couple of decades have foretold the end of Moore’s law; computing architectures made up of just central processing units (CPUs) can no longer provide large increases in performance with each new model of processor. Thus, as the weather community desires models that run on longer time scales, computing architectures that contain CPUs and some form of accelerator must be considered. To further the feasibility of using graphical processing units (GPUs) alongside CPUs for weather and climate modeling, this project explored the portability of the Community Earth System Model plus the Modular Ocean Model version six (CESM+MOM6) on different architectures, platforms and software stacks. This leads to the high-level goals of achieving reasonable performance gains, making minimal changes to the source code, and enhancing the portability of the model.
To reach these goals we added compiler hints in the form of OpenACC directives and compiled with the PGI compilers to maintain a single source code that can run on architectures with GPUs and CPUs, or on architectures that only have CPUs. This porting process was certainly non-trivial and involved plenty of training and preparation. These included: getting the base knowledge of Fortran, linking software dependencies within the Casper system, working with CESM+MOM6 and the Common Infrastructure for Modeling the Earth (CIME), and dealing with how the PGI compiler interprets computing standards.
Mentor: Supreeth Suresh