Enhancing Performance Monitoring in C/C++ Programs with EDPM: A Domain-Specific Language for Performance Monitoring
2024 (English) In: Euro-Par 2023: Parallel Processing Workshops / [ed] Demetris Zeinalipour, Dora Blanco Heras, George Pallis, Herodotos Herodotou, Demetris Trihinas, Daniel Balouek, Patrick Diehl, Terry Cojean, Karl Fürlinger, Maja Hanne Kirkeby, Matteo Nardelli, Pierangelo Di Sanzo, Springer Science+Business Media B.V., 2024, p. 110-122Conference paper, Published paper (Refereed)
Abstract [en]
The utilization of performance monitoring probes is a valuable tool for programmers to gather performance data. However, the manual insertion of these probes can result in an increase in code size, code obfuscation, and an added burden of learning different APIs associated with performance monitoring tools. To mitigate these issues, EDPM, an embedded domain-specific language, was developed to provide a higher level of abstraction for annotating regions of code that require instrumentation in C and C++ programs. This paper presents the design and implementation of EDPM and compares it to the well-known tool PAPI, in terms of required lines of code, flexibility in configuring regions, and performance overhead. The results of this study demonstrate that EDPM is a low-resolution profiling tool that offers a reduction in required lines of code and enables programmers to express various configurations of regions. Furthermore, the design of EDPM is such that its pragmas are ignored by the standard compiler, allowing for seamless integration into existing software processes without disrupting build systems or increasing the size of the executable. Additionally, the design of the EDPM pre-compiler allows for the extension of available performance counters while maintaining a high level of abstraction for programmers. Therefore, EDPM offers a promising solution to simplify and optimize performance monitoring in C and C++ programs. © The Author(s), under exclusive license to Springer Nature Switzerland AG 2024.
Place, publisher, year, edition, pages Springer Science+Business Media B.V., 2024. p. 110-122
Series
Lecture Notes in Computer Science (LNCS), ISSN 03029743, E-ISSN 16113349 ; 14351
Keywords [en]
compilers, domain-specific languages, language abstractions, performance monitoring, Abstracting, C++ (programming language), Codes (symbols), Problem oriented languages, Program compilers, C programs, C/C++ programs, Compiler, Domains specific languages, High level of abstraction, Language abstraction, Line of codes, Monitoring probes, Performance data, Performance-monitoring, Probes
National Category
Software Engineering
Identifiers URN: urn:nbn:se:bth-26213 DOI: 10.1007/978-3-031-50684-0_9 ISI: 001279250600009 Scopus ID: 2-s2.0-85192244518 ISBN: 9783031506833 (print) OAI: oai:DiVA.org:bth-26213 DiVA, id: diva2:1859547
Conference 29th International Conference on Parallel and Distributed Computing, Euro-Par 2023, Limassol, Aug 28- Sept 01 2023
2024-05-222024-05-222024-09-11 Bibliographically approved