SC19 Proceedings

The International Conference for High Performance Computing, Networking, Storage, and Analysis

Performance Portability of Multi-Material Kernels


Workshop: Performance Portability of Multi-Material Kernels

Abstract: Trying to improve performance, portability, and productivity of an application presents non-trivial trade-offs, which are often difficult to quantify. Recent work has developed metrics for performance portability, as well some aspects of productivity - in this case study, we present a set of challenging computational kernels and their implementations from the domain of multi-material simulations, and evaluate them using these metrics.

Three key kernels are implemented using OpenMP, OpenMP offload, OpenACC, CUDA, SYCL, and KOKKOS, and tested on ARM ThunderX2, IBM Power 9, Intel KNL, Broadwell, and Skylake CPUs, as well as NVIDIA P100 and V100 GPUs. We also consider the choice of compilers, evaluating LLVM/Clang, GCC, PGI, Intel, IBM XL, and Cray compilers, where available. We present a detailed performance analysis, calculate performance portability and code divergence metrics, contrasting performance, portability, and productivity.






Back to 2nd International Workshop on Performance, Portability, and Productivity in HPC (P3HPC) Archive Listing


Back to Full Workshop Archive Listing