Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1007/978-3-030-48340-1_28guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

CCAMP: OpenMP and OpenACC Interoperable Framework

Published: 26 August 2019 Publication History

Abstract

Heterogeneous systems have become a staple of the HPC environment. Several directive-based solutions, such as OpenMP and OpenACC, have been developed to alleviate the challenges of programming heterogeneous systems, and these standards strive to provide a single portable programming solution across heterogeneous environments. However, in many ways this goal has yet to be realized due to device-specific implementations and different levels of language support across compilers. In this framework we aim to analyze and address the different levels of optimization and compatibility between OpenACC and OpenMP programs and device compilers. We introduce the CCAMP framework, built on the OpenARC compiler, which implements language translation between OpenACC and OpenMP, with the goal of exploiting the maturity of different device-specific compilers to maximize performance for a given architecture. We show that CCAMP allows us to generate code for a specific device-compiler combination given a device-agnostic OpenMP or OpenACC program, allowing compilation and execution of programs with specific directives on otherwise incompatible devices. CCAMP also provides a starting point for a more advanced interoperable framework that can effectively provide directive translation and device, compiler, and application specific optimizations.

References

[1]
Arnold, G., Calvert, A., Overbey, J., Sultana, N.: From OpenACC to OpenMP 4: toward automatic translation. In: XCEDE 2016, Miami, FL (2016)
[2]
Bailey, D., Harris, T., Saphir, W., Van Der Wijngaart, R., Woo, A., Yarrow, M.: The NAS parallel benchmarks 2.0. Technical report, Technical Report NAS-95-020, NASA Ames Research Center (1995)
[3]
Dagum L and Menon R OpenMP: an industry-standard API for shared-memory programming Comput. Sci. Eng. 1998 1 46-55
[4]
Dave C, Bae H, Min SJ, Lee S, Eigenmann R, and Midkiff S Cetus: a source-to-source compiler infrastructure for multicores IEEE Comput. 2009 42 12 36-42 http://www.ecn.purdue.edu/ParaMount/publications/ieeecomputer-Cetus-09.pdf
[5]
Denny, J.E., Lee, S., Vetter, J.S.: CLACC: Translating OpenACC to OpenMP in clang. In: IEEE/ACM 5th Workshop on the LLVM Compiler Infrastructure in HPC (LLVM-HPC), pp. 18–29. IEEE (2018)
[6]
Gayatri R, Yang C, Kurth T, and Deslippe J Chandrasekaran S, Juckeland G, and Wienke S A case study for performance portability using OpenMP 4.5 Accelerator Programming Using Directives 2019 Cham Springer 75-95
[7]
Juckeland G et al. Jarvis SA, Wright SA, Hammond SD, et al. SPEC ACCEL: a standard application suite for measuring hardware accelerator performance High Performance Computing Systems. Performance Modeling, Benchmarking, and Simulation 2015 Cham Springer 46-67
[8]
Larrea, V.V., Joubert, W., Lopez, M.G., Hernandez, O.: Early experiences writing performance portable OpenMP 4 codes. In: Proceedings of the Cray User Group Meeting, London, England (2016)
[9]
Lee, S., Vetter, J.: OpenARC: open accelerator research compiler for directive-based, efficient heterogeneous computing. In: Proceedings of the ACM Symposium on High-Performance Parallel and Distributed Computing, HPDC 2014, Short Paper, June 2014
[10]
Lopez, M.G., et al.: Towards achieving performance portability using directives for accelerators. In: 2016 Third Workshop on Accelerator Programming Using Directives (WACCPD), pp. 13–24. IEEE (2016)
[11]
Mittal S and Vetter JS A survey of CPU-GPU heterogeneous computing techniques ACM Comput. Surv. (CSUR) 2015 47 4 69
[12]
OpenACC: OpenACC: directives for accelerators (2011). http://www.openacc.org
[13]
Pino, S., Pollock, L., Chandrasekaran, S.: Exploring translation of OpenMP to OpenACC 2.5: lessons learned. In: IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), pp. 673–682. IEEE (2017)
[14]
Wolfe, M.: Compilers and more: OpenACC to OpenMP (and back again), June 2016. https://www.hpcwire.com/. Accessed 29 June 2016

Cited By

View all
  • (2022)On the Migration of OpenACC-Based Applications into OpenMP 5+OpenMP in a Modern World: From Multi-device Support to Meta Programming10.1007/978-3-031-15922-0_9(127-141)Online publication date: 27-Sep-2022

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
Euro-Par 2019: Parallel Processing Workshops: Euro-Par 2019 International Workshops, Göttingen, Germany, August 26–30, 2019, Revised Selected Papers
Aug 2019
764 pages
ISBN:978-3-030-48339-5
DOI:10.1007/978-3-030-48340-1

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 26 August 2019

Author Tags

  1. OpenMP
  2. OpenACC
  3. Directive-based programming
  4. Heterogeneous computing
  5. CCAMP

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 17 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2022)On the Migration of OpenACC-Based Applications into OpenMP 5+OpenMP in a Modern World: From Multi-device Support to Meta Programming10.1007/978-3-031-15922-0_9(127-141)Online publication date: 27-Sep-2022

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media