Original title:
Výkonnostní analýza programů založená na vkládání šumu
Translated title:
Performance Analysis Based on Noise Injection
Authors:
Liščinský, Matúš ; Malík, Viktor (referee) ; Fiedor, Tomáš (advisor) Document type: Master’s theses
Year:
2021
Language:
eng Publisher:
Vysoké učení technické v Brně. Fakulta informačních technologií Abstract:
[eng][cze]
Táto práca predstavuje nástroj Perun-Blower, využívajúci perfblowing techniku: vkladanie šumu do funkcií testovaného programu a nasledovné vyhodnotenie vplyvu šumu na výkon programu na základe zozbieraných časových údajov týchto funkcií z behu programu. Implementácia je postavená na dynamickej binárnej inštrumentácii nástroja Pin. Zameriavame sa na hľadanie funkcií, ktoré majú vysoký vplyv na výkon a rovnako tak aj odhad potenciálneho zrýchlenia behu vlákna pri optimalizácii konkrétnej funkcie. Naviac sme rozšírili existujúci Trace collector používaný v nástroji Perun na zbieranie časových dát funkcií, o nový tzv. engine, ktorý je založený práve na nástroji Pin. Funkčnosť implementácie sme otestovali na dvoch netriviálnych projektoch, kde sme dokázali nájsť funkcie (1) so značným vplyvom na výkon, (2) s najvýznamnejším optimalizačným prínosom a (3) funkcie, ktorých degradácia spôsobí, že vykonávanie programu sa neskončí ani po niekoľkých hodinách.
In this work, we proposed a Perun-Blower framework which utilises the perfblowing technique: injecting of noise into the functions of the tested program, followed by collecting of runtime data of these functions from the program run and evaluating the impact of the noise on the program performance. We build on the dynamic binary instrumentation of the Pin framework to inject the noise into program. We then focus on finding functions with high impact on performance as well as estimate the thread run's potential acceleration when optimising the particular functions. Moreover, we have extended the existing Trace collector used in the Perun framework to collect the runtime of functions with a new so-called engine based on the Pin framework. We tested the functionality of our implementation on two non-trivial projects, where we were able to find functions (1) with considerable impact on performance, (2) with the most significant optimisation benefit, and (3) whose degradation forces the non-termination of the program after several hours of running.
Keywords:
kauzálne profilovanie; optimalizácia; virtuálna amplifikácia; vkladanie šumu; výkonnostne úzke miesta; výkonnostné testovanie; causal profiling; noise injection; optimisation; performance bottlenecks; performance testing; virtual amplification
Institution: Brno University of Technology
(web)
Document availability information: Fulltext is available in the Brno University of Technology Digital Library. Original record: http://hdl.handle.net/11012/200199