Abstract
High Performance Computing is steadily embracing heterogeneous systems for supporting a wide variety of workloads. Currently there are two main sources of heterogeneity in compute nodes: (a) different compute elements such as multicore CPUs, GPUs, FPGAs, etc. and (b) different types of memory including DDR, HBM, SSDs. Multiple compute elements and memory types present many opportunities for accelerating applications featuring stages characterized by different compute intensity, sequential or parallel execution, cache sensitivity, etc. At the same time programmers are facing multiple challenges in making necessary adaptations in their codes. In this study we employ IBM’s OpenMP 4.5 implementation to program hybrid nodes with multiple CPUs and GPUs and manage on-node memories and application data. Through code samples we provide application developers with numerous options for memory management and data management. We consider simple functions using arrays and also complex and nested data structures.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Chapman, B., Jost, G., van der Pas, R.: Using OpenMP: Portable Shared Memory Parallel Programming (Scientific and Engineering Computation). The MIT Press, Cambridge (2007)
Chen, T., Sura, Z., Sung, H.: Automatic copying of pointer-based data structures. In: Ding, C., Criswell, J., Wu, P. (eds.) LCPC 2016. LNCS, vol. 10136, pp. 265–281. Springer, Cham (2017). doi:10.1007/978-3-319-52709-3_20
Complex data management in OpenACC\(\textregistered \) programs. Technical report, OpenACC-Standard.org, November 2014. http://www.openacc.org/sites/default/files/inline-files/TR-14-1.pdf
OpenMP standard webpage. http://openmp.org/
OpenMP Language Committee: OpenMP Application Program Interface, version 4.5 edn. July 2013. http://www.openmp.org/mp-documents/openmp-4.5.pdf
Acknowledgement
This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under contract DEAC52-07NA27344 (LLNL-CONF-730677) and supported by Office of Science, Office of Advanced Scientific Computing Research.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Grinberg, L., Bertolli, C., Haque, R. (2017). Hands on with OpenMP4.5 and Unified Memory: Developing Applications for IBM’s Hybrid CPU + GPU Systems (Part I). In: de Supinski, B., Olivier, S., Terboven, C., Chapman, B., Müller, M. (eds) Scaling OpenMP for Exascale Performance and Portability. IWOMP 2017. Lecture Notes in Computer Science(), vol 10468. Springer, Cham. https://doi.org/10.1007/978-3-319-65578-9_1
Download citation
DOI: https://doi.org/10.1007/978-3-319-65578-9_1
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-65577-2
Online ISBN: 978-3-319-65578-9
eBook Packages: Computer ScienceComputer Science (R0)