错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Survey of OpenMP Practice in General Open Source Software

  • Tim Jammer,
  • Christian Iwainsky,
  • Christian Bischof

摘要

OpenMP, a widely adopted standard for shared memory parallel programming, is known for its simplicity and portability, making it accessible to programmers across various domains, not just HPC experts. This study aims at providing an overview of the current practice of OpenMP usage in open source projects. We focus our study on the considerations necessary for efficient OpenMP usage, as parallelizing an application with OpenMP comes with a certain overhead necessary for thread creation and management. For this purpose, we developed a binary analysis tool that automatically estimates the complexity of a parallel region allowing a comparison with the complexity of thread creation and management overhead in bluk. We applied this tool on a large set of 537 open source applications. Specifically, we want to answer the question: “To what extent is the usage of OpenMP in general following known good practices from the HPC community?" In particular, we find that \(45\%\) of projects contain at least one example of a rather simple parallel region. In these cases, it is questionable whether parallelization is worth the overhead necessary for thread creation and management. We also observe from the codes analysed that the style of using OpenMP apparently did not change over the last decade. Our analysis tool is available on GitHub: https://github.com/tudasc/openmp-analysis .