OpenMP Tools Interface: Synchronization Information for Data Race Detection

  • Joachim Protze
  • Jonas Hahnfeld
  • Dong H. AhnEmail author
  • Martin Schulz
  • Matthias S. Müller
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10468)


When it comes to data race detection, complete information about synchronization, concurrency and memory accesses is needed. This information might be gathered at various levels of abstraction. For best results regarding accuracy this information should be collected at the abstraction level of the parallel programming paradigm. With the latest preview of the OpenMP specification, a tools interface (OMPT) was added to OpenMP. In this paper we discuss whether the synchronization information provided by OMPT is sufficient to apply accurate data race analysis for OpenMP applications. We further present some implementation details and results for our data race detection tool called Archer which derives the synchronization information from OMPT.



The authors would like to thank the anonymous reviewers for their valuable comments and suggestions to improve the paper.

Part of this work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract DE-AC52-07NA27344. (LLNL-PROC-730143). Part of this work was possible under funding by the German Research Foundation (DFG) through the German Priority Programme 1648 Software for Exascale Computing (SPPEXA).


  1. 1.
    Archer project and source code.
  2. 2.
    Atzeni, S., Gopalakrishnan, G., Rakamaric, Z., Ahn, D.H., Laguna, I., Schulz, M., Lee, G.L., Protze, J., Müller, M.S.: ARCHER: effectively spotting data races in large openmp applications. In: 2016 IEEE International Parallel and Distributed Processing Symposium, IPDPS 2016, Chicago, IL, USA, 23–27 May 2016, pp. 53–62 (2016)Google Scholar
  3. 3.
    OpenMP Architecture Review Board: OpenMP Application Program Interface.
  4. 4.
    OpenMP Architecture Review Board: TR4: OpenMP Version 5.0 Preview 1.
  5. 5.
    Lidbury, C., Donaldson, A.F.: Dynamic race detection for C++11. In: Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017, Paris, France, 18–20 January 2017, pp. 443–457 (2017)Google Scholar
  6. 6.
    Müller, M.S., et al.: SPEC OMP2012 — an application benchmark suite for parallel systems using openMP. In: Chapman, B.M., Massaioli, F., Müller, M.S., Rorro, M. (eds.) IWOMP 2012. LNCS, vol. 7312, pp. 223–236. Springer, Heidelberg (2012). doi: 10.1007/978-3-642-30961-8_17 CrossRefGoogle Scholar
  7. 7.
    Protze, J., Atzeni, S., Ahn, D.H., Schulz, M., Gopalakrishnan, G., Müller, M.S., Laguna, I., Rakamaric, Z., Lee, G.L.: Towards providing low-overhead data race detection for large openMP applications. In: Proceedings of the 2014 LLVM Compiler Infrastructure in HPC, LLVM 2014, New Orleans, LA, USA, 17 November 2014, pp. 40–47 (2014)Google Scholar
  8. 8.
    Serebryany, K., Iskhodzhanov, T.: Threadsanitizer: data race detection in practice. In: Proceedings of the Workshop on Binary Instrumentation and Applications, WBIA 2009, pp. 62–71. ACM, New York (2009)Google Scholar
  9. 9.
    Serebryany, K., Potapenko, A., Iskhodzhanov, T., Vyukov, D.: Dynamic race detection with LLVM compiler. In: Khurshid, S., Sen, K. (eds.) RV 2011. LNCS, vol. 7186, pp. 110–114. Springer, Heidelberg (2012). doi: 10.1007/978-3-642-29860-8_9 CrossRefGoogle Scholar
  10. 10.
    The Clang Team: Clang 5 documentation: Threadsanitizer.
  11. 11.
    Brian Whitney: SPEC OMP2012 documentation.

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Joachim Protze
    • 1
    • 2
  • Jonas Hahnfeld
    • 1
    • 2
  • Dong H. Ahn
    • 3
    Email author
  • Martin Schulz
    • 3
  • Matthias S. Müller
    • 1
    • 2
  1. 1.RWTH Aachen UniversityAachenGermany
  2. 2.JARA – High-Performance ComputingAachenGermany
  3. 3.Lawrence Livermore National LaboratoryLivermoreUSA

Personalised recommendations