Skip to main content

OpenMP 4.0 Device Support in the OMPi Compiler

  • Conference paper
  • First Online:
OpenMP: Heterogenous Execution and Data Movements (IWOMP 2015)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9342))

Included in the following conference series:

Abstract

OpenMP 4.0 represents a major upgrade in the language specifications of the standard. Important constructs for the exploitation of simd parallelism, the support for dependencies among tasks and the ability to cancel the operations of a team of threads have been added. What is arguably the most important addition, however, is the introduction of the device model. A variety of computational units, such as gpus, dsps and general or special purpose accelerators are viewed as attached devices, where portion of a unified application code can be offloaded for execution. In this work we present the infrastructure for device support in the ompi research compiler, one of the few compilers that currently implement the new device directives. We discuss the necessary compiler transformations and the general runtime organization. For the first time, special emphasis is placed on the important problem of data environment handling. In addition, we present a prototype implementation on the popular Parallella board which exploits the dual-core arm host processor and the 16-core Epiphany accelerator of the system.

S.N. Agathos is supported by the Greek State Scholarships Foundation (IKY).

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Similar calls are used when transforming target update directives.

References

  1. Adapteva: Epiphany SDK reference Manual, September 2013

    Google Scholar 

  2. Adapteva: Parallella Reference Manual, September 2014

    Google Scholar 

  3. Agathos, S.N., Papadogiannakis, A., Dimakopoulos, V.V.: Targeting the parallella. In: Träff, J.L., Hunold, S., Versaci, F. (eds.) Euro-Par 2015. LNCS, vol. 9233, pp. 662–674. Springer, Heidelberg (2015)

    Chapter  Google Scholar 

  4. Appel, A.W.: Modern Compiler Implementation in C. Cambridge University Press, Cambridge (1999)

    MATH  Google Scholar 

  5. Bertolli, C., Antao, S.F., Eichenberger, A.E., O’Brien, K., Sura, Z., Jacob, A.C., Chen, T., Sallenave, O.: Coordinating GPU threads for OpenMP 4.0 in LLVM. In: Proceedings of LLVM-HPC 2014, New Orleans, Louisiana, pp. 12–21, November 2014

    Google Scholar 

  6. Brown Deer Technology, LLC: COPRTHR API Reference (2014)

    Google Scholar 

  7. Bull, J.M.: Measuring synchronisation and scheduling overheads in OpenMP. In: Proceedings of 1st EWOMP, Lund, Sweden, pp. 99–105, September 1999

    Google Scholar 

  8. Liao, C., Yan, Y., de Supinski, B.R., Quinlan, D.J., Chapman, B.: Early experiences with the OpenMP accelerator model. In: Rendell, A.P., Chapman, B.M., Müller, M.S. (eds.) IWOMP 2013. LNCS, vol. 8122, pp. 84–98. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  9. Dimakopoulos, V.V., Leontiadis, E., Tzoumas, G.: A portable C compiler for OpenMP V. 2.0. In: Proceedings of EWOMP 2003, Aachen, Germany, pp. 5–11, September 2003

    Google Scholar 

  10. Duran, A., Teruel, X., Ferrer, R., Martorell, X., Ayguadé, E.: Barcelona OpenMP tasks suite: a set of benchmarks targeting the exploitation of task parallelism in OpenMP. In: Proceedings of ICPP 2009, Vienna, Austria, pp. 124–131, September 2009

    Google Scholar 

  11. GNU: GCC 5 Release Series. https://gcc.gnu.org/gcc-5/changes.html

  12. Intel Corporation: User and Reference Guide for the Intel C++ Compiler 15.0, OpenMP* Support. https://software.intel.com/en-us/node/522679

  13. Khronos OpenCL Working Group: The OpenCL Specification Version: 1.2, November 2012

    Google Scholar 

  14. Kirk, D.B., Hwu, W.M.W.: Programming Massively Parallel Processors: A Hands-on Approach, 2nd edn. Morgan Kaufmann, San Francisco (2012)

    Google Scholar 

  15. Mitra, G., Stotzer, E., Jayaraj, A., Rendell, A.P.: Implementation and optimization of the OpenMP accelerator model for the TI keystone II architecture. In: DeRose, L., de Supinski, B.R., Olivier, S.L., Chapman, B.M., Müller, M.S. (eds.) IWOMP 2014. LNCS, vol. 8766, pp. 202–214. Springer, Heidelberg (2014)

    Google Scholar 

  16. Newburn, C., Deodhar, R., Dmitriev, S., Murty, R., Narayanaswamy, R., Wiegert, J., Chinchilla, F., McGuire, R.: Offload Compiler Runtime for the Intel Xeon PhiTM Coprocessor. In: Proceedings of ISC 2013, Leipzig, Germany, pp. 239–254, June 2013

    Google Scholar 

  17. OpenACC: The OpenACC Application Programming Interface, V. 2.0, June 2013

    Google Scholar 

  18. OpenMP ARB: OpenMP Application Program Interface V4.0, July 2013

    Google Scholar 

Download references

Acknowledgment

The authors would like to thank Adapteva for providing them with a Parallella-16 board through the Parallella University Program.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Vassilios V. Dimakopoulos .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Papadogiannakis, A., Agathos, S.N., Dimakopoulos, V.V. (2015). OpenMP 4.0 Device Support in the OMPi Compiler. In: Terboven, C., de Supinski, B., Reble, P., Chapman, B., Müller, M. (eds) OpenMP: Heterogenous Execution and Data Movements. IWOMP 2015. Lecture Notes in Computer Science(), vol 9342. Springer, Cham. https://doi.org/10.1007/978-3-319-24595-9_15

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-24595-9_15

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-24594-2

  • Online ISBN: 978-3-319-24595-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics