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 language | English |
---|---|
Title of host publication | Proceedings of P3HPC 2019 |
Subtitle of host publication | 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 |
Publisher | Institute of Electrical and Electronics Engineers Inc. |
Pages | 36-49 |
Number of pages | 14 |
ISBN (Electronic) | 9781728160030 |
DOIs | |
State | Published - Nov 2019 |
Externally published | Yes |
Event | 2019 IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC, P3HPC 2019 - Denver, United States Duration: Nov 22 2019 → … |
Publication series
Name | Proceedings 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
Conference | 2019 IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC, P3HPC 2019 |
---|---|
Country/Territory | United States |
City | Denver |
Period | 11/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