Hands on with OpenMP4.5 and Unified Memory: Developing Applications for IBM’s Hybrid CPU + GPU Systems (Part I)

  • Leopold GrinbergEmail author
  • Carlo Bertolli
  • Riyaz Haque
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10468)


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.


OpenPOWER HPC Offloading Directive based programming 



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.


  1. 1.
    Chapman, B., Jost, G., van der Pas, R.: Using OpenMP: Portable Shared Memory Parallel Programming (Scientific and Engineering Computation). The MIT Press, Cambridge (2007)Google Scholar
  2. 2.
    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 CrossRefGoogle Scholar
  3. 3.
    Complex data management in OpenACC\(\textregistered \) programs. Technical report,, November 2014.
  4. 4.
    OpenMP standard webpage.
  5. 5.
    OpenMP Language Committee: OpenMP Application Program Interface, version 4.5 edn. July 2013.

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  1. 1.IBM ResearchYorktown HeightsUSA
  2. 2.LLNLLivermoreUSA

Personalised recommendations