Controlling the Runtime Overhead of Python Monitoring with Selective Instrumentation

Research output: Contribution to book/conference proceedings/anthology/reportConference contributionContributedpeer-review

Abstract

Within the last years, Python became more prominent in the scientific community and is now used for simulations, machine learning, and data analysis. All these tasks profit from parallelism and offloading. In the domain of High Performance Computing (HPC), we can look back to decades of experience exploiting the different levels of parallelism. By using performance analysis tools like Score-P, we support tuning applications and their parallelism for performance. The HPC community developed approaches to make this analysis as efficient as possible and reduce the overhead these tools introduced. However, the overhead introduced is still significant for complex Python applications, and the traditional compile-time filtering is not available in Python. Therefore, we come up with a selective instrumentation approach. Using some of Pythons concepts, we designed a powerful and intuitive alternative to compile-time filtering for Python. We finish with a small use case from a real-world machine learning application.

Details

Original languageEnglish
Title of host publication2021 IEEE/ACM International Workshop on Programming and Performance Visualization Tools (ProTools)
Number of pages9
ISBN (electronic)9781665411103
Publication statusPublished - Nov 2021
Peer-reviewedYes

External IDs

Scopus 85124484757
ORCID /0009-0003-0666-4166/work/151475586

Keywords

Keywords

  • HPC, Instrumentation, Performance Analysis, Python