Report Open Access
Leonardo Xavier Kuffo Rivero
Improving the performance of an application is an important objective carried out from the application conception until its deprecation. Developers are constantly trying to improve the performance of their applications, either by using more computationally efficient algorithms, migrating to distributed processing platforms or doing intensive computation tasks on modern GPU’s. This is no surprise, given that achieving even a slight improvement in the performance of an application can be translated into the saving of time and economical resources. Every component of a system is responsible for the running time of an application, which is the most tangible representation of performance. Therefore, monitoring the activity of these components on application runtime is essential in order to understand and optimize the application. Trident is a profiling tool which does the latter by monitoring the relevant hardware and software counters throughout the execution of an application at the node level, without inducing significant overhead. However, data produced by Trident often requires a deep understanding of computer systems at a hardware and software level to be correctly interpreted. The present study introduces our framework Poseidon which aims to profile and describe a running application based entirely upon specialized benchmarks, turning trident data into knowledge for developers. Poseidon use a novel approach of Multi-variate time series classification denominated WEASEL + MUSE (Word ExtrAction for time SEries cLassification + Multivariate Unsupervised Symbols and dErivatives), to measure the degree of similarity between the Trident monitored metrics of these benchmarks and the running applications. Applying our framework, we were able to profile our ground-truth data with a 96.36% of accuracy. Moreover, we satisfactorily discovered different workflow phases embedded in real applications and profiled their Trident data based upon the knowledge present on benchmarks.