The Design of OpenMP Thread Affinity

  • Alexandre E. Eichenberger
  • Christian Terboven
  • Michael Wong
  • Dieter an Mey
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7312)


Exascale machines will employ significantly more threads than today, but even on current architectures controlling thread affinity is crucial to fuel all the cores and to maintain data affinity, but both MPI and OpenMP lack a solution to this problem. In this work, we present a thread affinity model for OpenMP, which will be shown to work well with hybrid use cases, too. It maintains a separation of platform-specific data and algorithm-specific properties, thus offering deterministic behavior and simplicity in use.


Execution Environment Parallel Region Work Thread Parallel Construct Master Thread 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    OpenMP Pragma and Region Instrumentor (OPARI)Google Scholar
  2. 2.
    Broquedis, F., Clet-Ortega, J., Moreaud, S., Furmento, N., Goglin, B., Mercier, G., Thibault, S., Namyst, R.: hwloc: A generic framework for managing hardware affinities in hpc applications. In: 2010 18th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP), pp. 180–186 (February 2010)Google Scholar
  3. 3.
    Terboven, C., an Mey, D., Schmidl, D., Jin, H., Wagner, M.: Data and Thread Affinity in OpenMP Programs. In: Proceedings of the 2008 Workshop on Memory Access on Future Processors: a Solved Problem?, MAW 2008, pp. 377–384. ACM International Conference on Computing Frontiers (2008)Google Scholar
  4. 4.
    Schmidl, D., Terboven, C., an Mey, D., Bücker, M.: Binding Nested OpenMP Programs on Hierarchical Memory Architectures. In: Sato, M., Hanawa, T., Müller, M.S., Chapman, B.M., de Supinski, B.R. (eds.) IWOMP 2010. LNCS, vol. 6132, pp. 29–42. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  5. 5.
    GNU. GNU libgomp (2012)Google Scholar
  6. 6.
    IBM. IBM C/C++ Version 11.1 and FORTRAN Version 13.1 (2009)Google Scholar
  7. 7.
    Intel. Intel C++ Compiler XE 12.0 User and Reference Guide (2010)Google Scholar
  8. 8.
    OpenMP ARB. OpenMP Application Program Interface, v. 3.1 (July 2011)Google Scholar
  9. 9.
    Oracle Solaris Studio 12.2: OpenMP API User’s Guide. Oracle (2012)Google Scholar
  10. 10.
    Snir, M., Otto, S., Huss-Lederman, S., Walker, D., Dongarra, J.: MPI-The Complete Reference, 2nd (revised) edn. The MPI Core, vol. 1. MIT Press, Cambridge (1998)Google Scholar
  11. 11.
    The Portland Group. PGI Compiler User’s Guide (2011)Google Scholar
  12. 12.
    Huang, L., Jin, H., Yi, L., Chapman, B.: Enabling locality-aware computations in OpenMP. Sci. Program. 18(3-4), 169–181 (2010)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Alexandre E. Eichenberger
    • 1
  • Christian Terboven
    • 2
  • Michael Wong
    • 3
  • Dieter an Mey
    • 2
  1. 1.IBM T.J. Watson Research CenterNew YorkUSA
  2. 2.Center for Computing and CommunicationJARA, RWTH Aachen UniversityGermany
  3. 3.IBM Software GroupTorontoCanada

Personalised recommendations