Detail práce
Efficient Techniques for Program Performance Analysis
Tato práce představuje optimalizační techniky zaměřené na proces sběru výkonnostních dat v rámci výkonnostní analýzy a profilování programů v nástroji Perun. Rozšíření architektury a implementace těchto nových optimalizačních technik v nástroji Perun (a převážně pak v jeho modulu Tracer) zlepšuje jeho škálovatelnost a umožňuje tak provádět výkonnostní analýzu i nad rozsáhlými projekty. Zaměřujeme se především na zvýšení přesnosti sběru dat, redukci množství instrumentovaných bodů programu, omezení časové režie procesu sběru dat a výkonnostního profilování, snížení objemu sbíraných dat a velikosti výsledného výkonnostního profilu. Optimalizace je dosažena pomocí aplikace statistických metod, množství technik statické a dynamické analýzy (případně jejich kombinací) a využitím pokročilých možností a schopností nástrojů SystemTap a eBPF. Na základě vyhodnocení provedeného na dvou vybraných projektech a množství experimentů můžeme konstatovat, že se nám úspěšně podařilo dosáhnout značné optimalizace u téměř všech sledovaných metrik a kritérií.
optimalizační techniky, výkonnostní analýza, dynamická analýza, statická analýza, dynamická instrumentace, kontinuální integrace, SystemTap, eBPF
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.
- Tracer, nástroj pro sběr výkonnostní dat, je závislý na technologiích SystemTap a eBNF, jenž jsou k dispozici pouze pro operační systém Linux. Jak reálné by bylo přidání podpory sběru výkonnostních dat pro operační systém Windows? Existují technologie, jenž by šly použít pro tento účel v systému Windows?
- Řada optimalizačních technik má jako vstup CGR, neboli CG (call graph) + CFG (control flow graph), a produkuje modifikovaný CGR. Dostává každá technika originální CGR? Pokud ano, jak se poté řeší sloučení modifikovaných CGR? Pokud ne, a každá technika tedy dostává na vstup modifikovaný CGR, jenž je výstupem techniky aplikované před ní, jak ovlivňuje pořadí řetězení optimalizací celkový výsledek?
- Je možné Vaše řešení použít pro měření performance degradation v kernelu?
Čadík Martin, doc. Ing., Ph.D. (UPGM FIT VUT), člen
Lengál Ondřej, Ing., Ph.D. (UITS FIT VUT), člen
Malinka Kamil, Mgr., Ph.D. (UITS FIT VUT), člen
Polčák Libor, Ing., Ph.D. (UIFS FIT VUT), člen
Veselý Vladimír, Ing., Ph.D. (UIFS FIT VUT), člen
@mastersthesis{FITMT19092, author = "Ji\v{r}\'{i} Pavela", type = "Diplomov\'{a} pr\'{a}ce", title = "Efficient Techniques for Program Performance Analysis", school = "Vysok\'{e} u\v{c}en\'{i} technick\'{e} v Brn\v{e}, Fakulta informa\v{c}n\'{i}ch technologi\'{i}", year = 2020, location = "Brno, CZ", language = "english", url = "https://www.fit.vut.cz/study/thesis/19092/" }