Controlling the Runtime Overhead of Python Monitoring with Selective Instrumentation
TimeSunday, 14 November 20219:35am - 10:05am CST
DescriptionWithin 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.