An Approach for Indirectly Adopting a Performance Portability Layer in Large Legacy Codes

John K. Holmen, Brad Peterson, Martin Berzins

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

11 Scopus citations

Abstract

Diversity among supported architectures in current and emerging high performance computing systems, including those for exascale, makes portable codebases desirable. Portabil- ity of a codebase can be improved using a performance portability layer to provide access to multiple underlying programming mod- els through a single interface. Direct adoption of a performance portability layer, however, poses challenges for large pre-existing software frameworks that may need to preserve legacy code and/or adopt other programming models in the future. This paper describes an approach for indirect adoption that introduces a framework-specific portability layer between the application developer and the adopted performance portability layer to help improve legacy code support and long-term portability for future architectures and programming models. This intermediate layer uses loop-level, application-level, and build-level components to ease adoption of a performance portability layer in large legacy codebases. Results are shown for two challenging case studies using this approach to make portable use of OpenMP and CUDA via Kokkos in an asynchronous many-task runtime system, Uintah. These results show performance improvements up to 2.7x when refactoring for portability and 2.6x when more efficiently using a node. Good strong-scaling to 442,368 threads across 1,728 Knights Landing processors are also shown using MPI+Kokkos at scale.

Original languageEnglish
Title of host publicationProceedings of P3HPC 2019
Subtitle of host publicationInternational Workshop on Performance, Portability and Productivity in HPC - Held in conjunction with SC 2019: The International Conference for High Performance Computing, Networking, Storage and Analysis
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages36-49
Number of pages14
ISBN (Electronic)9781728160030
DOIs
StatePublished - Nov 2019
Externally publishedYes
Event2019 IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC, P3HPC 2019 - Denver, United States
Duration: Nov 22 2019 → …

Publication series

NameProceedings of P3HPC 2019: International Workshop on Performance, Portability and Productivity in HPC - Held in conjunction with SC 2019: The International Conference for High Performance Computing, Networking, Storage and Analysis

Conference

Conference2019 IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC, P3HPC 2019
Country/TerritoryUnited States
CityDenver
Period11/22/19 → …

Funding

This material is based upon work supported by the Department of Energy, National Nuclear Security Administration, under Award Number(s) DENA0002375. Support for J. K. Holmen also comes from the Intel Parallel Computing Centers Program. This material is based upon work supported by the Department of Energy, National Nuclear Security Administration, under Award Number(s) DE-NA0002375. An award of computing time was provided by the NSF Extreme Science and Engineering Discovery Environment (XSEDE) program. This research used resources of the Texas Advanced Computing Center, under Award Number(s) MCA08X004 - “Resilience and Scalability of the Uintah Software”. This research also used resources donated to the University of Utah Intel Parallel Computing Center (IPCC) at the SCI Institute. Support for J. K. Holmen also comes from the Intel Parallel Computing Centers Program. Additionally, we would like to thank all of those involved with the CCMSC and Uintah past and present. This material is based upon work supported by the Department of Energy, National Nuclear Security Administration, under Award Number(s) DE-NA0002375. Support for J. K. Holmen also comes from the Intel Parallel Computing Centers Program.

Keywords

  • Frameworks
  • Parallel Architectures
  • Parallelism and Concurrency
  • Portability
  • Software Engineering

Fingerprint

Dive into the research topics of 'An Approach for Indirectly Adopting a Performance Portability Layer in Large Legacy Codes'. Together they form a unique fingerprint.

Cite this