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应用及其他领域中的持续作用。这些统计洞见对于制定合理的并行化策略至关重要,并为并行编程模型与技术的进一步发展奠定了基础。