In high-performance computing (HPC), the demand for efficient parallel
programming models has grown dramatically since the end of Dennard Scaling and
the subsequent move to multi-core CPUs. OpenMP stands out as a popular choice
due to its simplicity and portability, offering a directive-driven approach for
shared-memory parallel programming. Despite its wide adoption, however, there
is a lack of comprehensive data on the actual usage of OpenMP constructs,
hindering unbiased insights into its popularity and evolution. This paper
presents a statistical analysis of OpenMP usage and adoption trends based on a
novel and extensive database, HPCORPUS, compiled from GitHub repositories
containing C, C++, and Fortran code. The results reveal that OpenMP is the
dominant parallel programming model, accounting for 45% of all analyzed
parallel APIs. Furthermore, it has demonstrated steady and continuous growth in
popularity over the past decade. Analyzing specific OpenMP constructs, the
study provides in-depth insights into their usage patterns and preferences
across the three languages. Notably, we found that while OpenMP has a strong
"common core" of constructs in common usage (while the rest of the API is less
used), there are new adoption trends as well, such as simd and target
directives for accelerated computing and task for irregular parallelism.
Overall, this study sheds light on OpenMP's significance in HPC applications
and provides valuable data for researchers and practitioners. It showcases
OpenMP's versatility, evolving adoption, and relevance in contemporary parallel
programming, underlining its continued role in HPC applications and beyond.
These statistical insights are essential for making informed decisions about
parallelization strategies and provide a foundation for further advancements in
parallel programming models and techniques