Home > Publications database > Score-P and OMPT: Smoothing the bumpy road to OpenMP performance measurement |
Conference Presentation (After Call) | FZJ-2024-05698 |
; ;
2024
This record in other databases:
Please use a persistent id in citations: doi:10.34734/FZJ-2024-05698
Abstract: The OpenMP API is a widely used interface for high-level parallel programming in C, C++ and Fortran. Initially introduced in 1997, it now targets three basic processor building blocks, CPUs, SIMD vector units, and accelerators. With large adoption in the HPC community and wide support from compiler vendors, OpenMP grew into a key component in leveraging node-level parallelism in applications and frameworks. Herewith, a need for OpenMP-aware performance measurement and analysis tools arose. In version 5.0 of the OpenMP specification, the OpenMP Tools Interface (OMPT) was introduced, providing means to collect precise information about the application's use of OpenMP directives and lock routines. Although provided with a detailed specification, understanding and correctly handling the CPU execution model event sequence dispatched from various vendor's runtimes requires detailed analysis of events, their parameters and executing threads. To facilitate this analysis, we developed a freely available OMPT tool that allows for dumping execution model events and corresponding metadata for post-mortem inspection. Analyzing the output of this tool applied to the official OpenMP examples and handwritten smoke tests, enabled us to implement an OMPT tool for the performance measurement infrastructure Score-P, replacing the long-established, but feature-incomplete source-to-source OpenMP instrumenter OPARI2. Both OMPT tools are regularly tested against the aforementioned OpenMP examples and smoke tests. As vendors take the freedom to interpret the OMPT specification, various checks were developed to detect deviations. In Score-P, deviations are classified as fatal, disengageable, and remediable. Based on feedback given to the vendors, several of the deviations are no longer a concern. Accompanying the development of OMPT itself, the overhead being introduced in the OpenMP runtimes was always a concern. To assess this overhead in various contemporary runtimes, we used the EPCC and SPEC OpenMP benchmark suites, with OMPT disabled (if possible), with a dummy tool, and with the Score-P OMPT tool attached.
![]() |
The record appears in these collections: |