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.
翻译:在高性能计算(HPC)领域,自登纳德缩放定律终结以及多核CPU普及以来,对高效并行编程模型的需求急剧增长。OpenMP凭借其简洁性和可移植性脱颖而出,成为一种主流的基于指令的共享内存并行编程方法。然而,尽管其被广泛采用,目前仍缺乏关于OpenMP构造实际使用情况的全面数据,这阻碍了对其普及程度和演变的客观洞察。本文基于一个新颖且广泛的数据库HPCORPUS(该库从包含C、C++和Fortran代码的GitHub仓库中编译而成),对OpenMP的使用与采纳趋势进行了统计分析。结果表明,OpenMP是主导性的并行编程模型,占所有被分析并行API的45%。此外,在过去十年中,其普及程度呈现出稳定且持续的增长态势。通过对特定OpenMP构造的分析,本研究深入揭示了这三种语言中构造的使用模式和偏好。值得注意的是,我们发现OpenMP存在一个被广泛使用的"公共核心"构造集(而其余API使用较少),同时也有新的采纳趋势,例如用于加速计算的simd和target指令,以及用于不规则并行的task指令。总体而言,本研究揭示了OpenMP在HPC应用中的重要性,并为研究人员和从业者提供了有价值的数据。它展示了OpenMP的多功能性和不断演进的采纳趋势,及其在当代并行编程中的相关性,强调了其在HPC应用及其他领域中的持续作用。这些统计洞察对于制定并行化策略至关重要,并为并行编程模型和技术的进一步发展奠定了基础。