SMITH, MATTHEW and Wright, Steven A. orcid.org/0000-0001-7133-8533 (2025) Investigating Performance, Portability, and Productivity with a Simple Computational Fluid Dynamics Solver. In: UK Performance Engineering Workshop, 16 Dec 2025, University of Newcastle.
Abstract
Heterogenous systems containing hardware accelerators are the driving force behind the continuing increases in computing power today. However, heterogeneity is forcing developers to write propriety code for accelerators or risk underutilising the potential of the most-powerful systems currently available. This has led to the development of a number of programming models and frameworks focused on performance portability that aim to deliver performance across multiple platforms from a single source. In this paper we study the performance, portability, and productivity of six different approaches currently available to developers, across six different hardware platforms. In particular, we explore three programming models with limited portability – CUDA, HIP, and MPI – and three programming models that promise extensive portability – Kokkos, and two variants of the OpenMP standard, prescriptive and descriptive. Our results highlight that the best performance on each platform is typically achieved by an approach with limited portability, and that portable approaches require divergent code branches in order to remain competitive.
Metadata
| Item Type: | Conference or Workshop Item |
|---|---|
| Authors/Creators: |
|
| Dates: |
|
| Institution: | The University of York |
| Academic Units: | The University of York > Faculty of Sciences (York) > Computer Science (York) |
| Date Deposited: | 17 Dec 2025 12:00 |
| Last Modified: | 17 Dec 2025 12:00 |
| Status: | Published |
| Refereed: | No |
| Open Archives Initiative ID (OAI ID): | oai:eprints.whiterose.ac.uk:235565 |
Download
Filename: P3_Paper_on_Kokkos_vs_OpenMP_descriptive_and_prescriptive_-6.pdf
Description: P3_Paper_on_Kokkos_vs_OpenMP__descriptive_and_prescriptive_-6

CORE (COnnecting REpositories)
CORE (COnnecting REpositories)