[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3293883.3302577acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
tutorial
Open access

Performance portable C++ programming with RAJA

Published: 16 February 2019 Publication History

Abstract

With the rapid change of computing architectures, and variety of programming models; the ability to develop performance portable applications has become of great importance. This is particularly true in large production codes where developing and maintaining hardware specific versions is untenable.
To simplify the development of performance portable code, we introduce RAJA, our C++ library that allows developers to write single-source applications that can target multiple hardware and programming model back-ends. We provide a thorough introduction to all of RAJA features, and walk through some hands-on examples that will allow attendees to understand how RAJA might benefit their own applications. Attendees should bring a laptop computer to participate in the hands-on exercises.
This tutorial will introduce attendees to RAJA, a C++ library for developing performance portable applications. Attendees will learn how to write performance portable code that can execute on a range of programming models (OpenMP, CUDA, Intel TBB, and HCC) and hardware (CPU, GPU, Xeon Phi).
Specifically, attendees will learn how to convert existing C++ applications to use RAJA, and how to use RAJA's programming abstractions to expose existing parallelism in their applications without complex algorithm rewrites. We will also cover specific guidelines for using RAJA in a large application, including some common "gotchas" and how to handle memory management. Finally, attendees will learn how to categorize loops to allow for simple and systematic performance tuning on any architecture.

Cited By

View all
  • (2024)Enhancing Kokkos with OpenACCInternational Journal of High Performance Computing Applications10.1177/1094342024126198738:5(409-426)Online publication date: 1-Sep-2024
  • (2024)sKokkos: Enabling Kokkos with Transparent Device Selection on Heterogeneous Systems using OpenACCProceedings of the International Conference on High Performance Computing in Asia-Pacific Region10.1145/3635035.3635043(23-34)Online publication date: 18-Jan-2024
  • (2024)Enabling performance portability on the LiGen drug discovery pipelineFuture Generation Computer Systems10.1016/j.future.2024.03.045158:C(44-59)Online publication date: 1-Sep-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
PPoPP '19: Proceedings of the 24th Symposium on Principles and Practice of Parallel Programming
February 2019
472 pages
ISBN:9781450362252
DOI:10.1145/3293883
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 February 2019

Check for updates

Author Tags

  1. parallel programming
  2. performance portability

Qualifiers

  • Tutorial

Conference

PPoPP '19

Acceptance Rates

PPoPP '19 Paper Acceptance Rate 29 of 152 submissions, 19%;
Overall Acceptance Rate 230 of 1,014 submissions, 23%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)88
  • Downloads (Last 6 weeks)3
Reflects downloads up to 19 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Enhancing Kokkos with OpenACCInternational Journal of High Performance Computing Applications10.1177/1094342024126198738:5(409-426)Online publication date: 1-Sep-2024
  • (2024)sKokkos: Enabling Kokkos with Transparent Device Selection on Heterogeneous Systems using OpenACCProceedings of the International Conference on High Performance Computing in Asia-Pacific Region10.1145/3635035.3635043(23-34)Online publication date: 18-Jan-2024
  • (2024)Enabling performance portability on the LiGen drug discovery pipelineFuture Generation Computer Systems10.1016/j.future.2024.03.045158:C(44-59)Online publication date: 1-Sep-2024
  • (2023)MatRIS: Multi-level Math Library Abstraction for Heterogeneity and Performance Portability using IRIS RuntimeProceedings of the SC '23 Workshops of The International Conference on High Performance Computing, Network, Storage, and Analysis10.1145/3624062.3624184(1081-1092)Online publication date: 12-Nov-2023
  • (2023)A MultiGPU Performance-Portable Solution for Array Programming Based on KokkosProceedings of the 9th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming10.1145/3589246.3595369(1-12)Online publication date: 6-Jun-2023
  • (2023)High-Performance GPU-to-CPU Transpilation and Optimization via High-Level Parallel ConstructsProceedings of the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3572848.3577475(119-134)Online publication date: 25-Feb-2023
  • (2023)Enabling Multi-threading in Heterogeneous Quantum-Classical Programming Models2023 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)10.1109/IPDPSW59300.2023.00090(509-516)Online publication date: May-2023
  • (2023)IRIS-DMEM: Efficient Memory Management for Heterogeneous Computing2023 IEEE High Performance Extreme Computing Conference (HPEC)10.1109/HPEC58863.2023.10363512(1-7)Online publication date: 25-Sep-2023
  • (2023)A Portable and Heterogeneous LU Factorization on IRISEuro-Par 2022: Parallel Processing Workshops10.1007/978-3-031-31209-0_2(17-31)Online publication date: 2-May-2023
  • (2022)KokkACC: Enhancing Kokkos with OpenACC2022 Workshop on Accelerator Programming Using Directives (WACCPD)10.1109/WACCPD56842.2022.00009(32-42)Online publication date: Nov-2022
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media