Detail práce

Rozšíření nástroje ANaConDa pro dynamickou analýzu paralelních programů

Bakalářská práce Student: Horňák Michal Akademický rok: 2016/2017 Vedoucí: Vojnar Tomáš, prof. Ing., Ph.D.
Název anglicky
An Extension of the ANaConDa Tool for Dynamic Analysis of Concurrent Programs
Jazyk práce
český
Abstrakt

Cieľom tejto práce bolo implementácia algoritmu FastTrack pre dynamickú analízu viac-vláknových programov v jazyku C/C++. Ide o algoritmus detekujúci chyby typu data race. Je založený na relácii happens-before zakódovanej do tzv. vektor-klokov. Tie umožňujú extrapolovať beh programu

a odhaľovať tak potenciálne chyby, ktoré sa v aktuálnom behu nevyskytli, ale v iných exekúciách by sa mohli vyskytnúť. Algoritmus je implementovaný v prostredí ANaConDA. Jedná sa o nástroj slúžiaci pre jednoduchšie implementovanie dynamických analizátorov monitorujúcich paralelné programy na binárnej úrovni. ANaConDA poskytuje analyzátorom potrebné informácie o behu programu, ktoré detektory následne využívaju k odhaľovaniu chýb.

Klíčová slova

dynamická analýza, FastTrack, ANaConDA, C, C++, data race, viac-vláknové programovanie, paralelné programy, vektor-klok, Djit+

Ústav
Studijní program
Informační technologie
Soubory
Stav
neobhájeno
Obhajoba
12. června 2017
Oponent
Průběh obhajoby

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. Oponent hodnotil práci stupněm 4F, protože realizační výstup (analyzátor Fast Track) je nedokončený, a tím potažmo nepoužitelný. Student nedokázal vyvrátit výtky oponenta. Komise shledala nedostatky práce natolik závažné, že se práci rozhodla hodnotit jako nevyhovující "F".

Otázky u obhajoby
  1. V sekci 6.1 na straně 24 uvádíte, že paměťová náročnost pro uložení vektorů hodin je nejhůře lineární. To však platí pro uložení jednoho vektoru hodin, přičemž pro detekci je potřeba vektor hodin pro každé vlákno, pro každý zámek a dva vektory pro každou sdílenou proměnnou. Neměla by tedy paměťová složitost být kvadratická, když už zanedbáme prostor pro zámky a proměnné?
  2. Když se při detekci místo vektoru hodin používá epocha, má použitá datová struktura pro vektor všechny položky kromě první nulové (sekce 7.2.1). Nebylo by vhodnější použít takovou datovou strukturu, která by tyto zbytečné položky vůbec neměla?
Komise
Zendulka Jaroslav, doc. Ing., CSc. (UIFS FIT VUT), předseda
Fučík Otto, doc. Dr. Ing. (UPSY FIT VUT), člen
Grézl František, Ing., Ph.D. (UPGM FIT VUT), člen
Matoušek Petr, doc. Ing., Ph.D., M.A. (UIFS FIT VUT), člen
Smrčka Aleš, Ing., Ph.D. (UITS FIT VUT), člen
Citace
HORŇÁK, Michal. Rozšíření nástroje ANaConDa pro dynamickou analýzu paralelních programů. Brno, 2017. Bakalářská práce. Vysoké učení technické v Brně, Fakulta informačních technologií. 2017-06-12. Vedoucí práce Vojnar Tomáš. Dostupné z: https://www.fit.vut.cz/study/thesis/20161/
BibTeX
@bachelorsthesis{FITBT20161,
    author = "Michal Hor\v{n}\'{a}k",
    type = "Bakal\'{a}\v{r}sk\'{a} pr\'{a}ce",
    title = "Roz\v{s}\'{i}\v{r}en\'{i} n\'{a}stroje ANaConDa pro dynamickou anal\'{y}zu paraleln\'{i}ch program\r{u}",
    school = "Vysok\'{e} u\v{c}en\'{i} technick\'{e} v Brn\v{e}, Fakulta informa\v{c}n\'{i}ch technologi\'{i}",
    year = 2017,
    location = "Brno, CZ",
    language = "czech",
    url = "https://www.fit.vut.cz/study/thesis/20161/"
}
Nahoru