SIParCS 2021 - Zephaniah Connell
Performance Portability of Shallow Water Model with Kokkos
The computational capacity of high-performance computing platforms has increased rapidly during recent years, in part due to accelerators like GPGPUs, which can increase performance by offloading and parallelizing computations. Domain scientists are interested in exploring the use of accelerators in addition to traditional CPUs for performing parallel computations, but it can be difficult and time-consuming to port or develop multiple versions of code that only run on specific architectures. It is more desirable to have a single performance-portable source code. There are a number of new frameworks that advertise the ability to execute the same code on CPU or accelerators with limited or no modification. This project aimed to assess the performance portability of the Shallow Water Model (SWM) mini-app using a prominent one of these frameworks, the C++ library Kokkos.
The first step was to learn various concepts of Kokkos in order to parallelize a simple vector addition C++ code. Next, we ported the SWM mini-app to Kokkos and ran it on an Intel Xeon Skylake CPU and an Nvidia Tesla V100 GPU with different problem sizes. A comparison between the performance of the Kokkos ported code and the original serial, OpenMP, and OpenACC versions of SWM mini-app is discussed in this presentation. The Kokkos version performed poorly on the Intel CPU in both serial and parallel configurations but had good performance on the Nvidia GPU for small problem sizes, though performance began to suffer as the problem size increased.
Mentors: Supreeth Suresh, Cena Miller, Jian Sun, & John Dennis
Slides and posters