학술논문

An Accurate Tool for Modeling, Fingerprinting, Comparison, and Clustering of Parallel Applications Based on Performance Counters
Document Type
Conference
Source
2019 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW) IPDPSW Parallel and Distributed Processing Symposium Workshops (IPDPSW), 2019 IEEE International. :797-804 May, 2019
Subject
Bioengineering
Components, Circuits, Devices and Systems
Computing and Processing
Tools
Python
Kernel
Monitoring
Linux
Hardware
Benchmark testing
Modeling
Fingerprinting
Clustering
Parallel Applicaitons
Performance Counters
Language
Abstract
The analysis of application performance is essential to better exploit its potential on High-Performance Computing (HPC) architectures. Access to performance counters, available in modern processors, allows collecting key information about program behavior to provide the most appropriate HPC execution strategy. In this context, we have developed an accurate tool based on performance counters, which facilitates modeling, fingerprinting, behavior comparison and clustering of applications. It provides a high-level Python API for accessing and configuring performance counters. While the execution and counters gathering is performed by a C++ module to reduce overheads. Moreover, the accuracy of this multiplatform tool was also compared to existing alternatives. Key features, such as performance counters collection, post-processing, and comparison, enable fingerprinting of applications, an important step in understanding program behavior for later classification and optimization according to the parameters characterizing the target HPC platform. For demonstration purposes, the tool was used in the clustering of Polybench applications, a frequently used benchmark set for kernels monitoring. This clustering helped the identification of applications with similar and comparable behaviors in terms of input size, data accesses and movements, resource utilization, and computation, which facilitates the creation of test sets for a given environment, according to specific measurement parameters.