Detail práce
Optimalizace algoritmů SIMD instrukcemi
Tato práce popisuje a porovnává techniky použitelné pro optimalizaci algoritmů převážně z hlediska zkrácení výpočetní doby. Pro demonstraci praktik byly vybrány algoritmy z rozdílných oblastí a to -- optimalizace hejnem částic, algoritmus pro vykreslování kružnic a algoritmus pro otočení obrázku (matice). Tyto algoritmy byly implementovány v jazyce Python 3, C a jazyce symbolických adres s využitím SIMD technologie. Při psaní kódu byl kladen důraz na co nejefektivnější implementaci algoritmu. V této práci jsou tyto praktiky popsáný a porovnány, stejně tak jako jejich účinek na optimalizaci algoritmů. Provedené testy potvrdily velký potenciál SIMD technologií pro optimalizace, ale také to, že tento přístup není možný využít na všechny algoritmy. V případě optimalizace algoritmu pro vykreslování kružnic dosahovala SIMD implementace více jak desetinásobné rychlosti než sériová implementace v jazyce C a více jak tisíckrát vyšší rychlost než implementace v jazyce Python 3. V případě algoritmu optimalizace hejnem částic byla však implementace v jazyce C rychlejší než SIMD implementace algoritmu.
Optimalizace, zrychlení výpočtu, porovnání programovacích jazyků, SIMD, jazyk symbolických adres, programovací jazyk C, Python 3.
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.
- Jaké jsou možnosti využití SIMD instrukcí ve vyšších programovacích jazycích a jak jich použití případně docílit?
- Jaké datové typy jste používal?
Češka Milan, doc. RNDr., Ph.D. (UITS FIT VUT), člen
Jaroš Jiří, doc. Ing., Ph.D. (UPSY FIT VUT), člen
Orság Filip, Ing., Ph.D. (UITS FIT VUT), člen
Rychlý Marek, RNDr., Ph.D. (UIFS FIT VUT), člen
@bachelorsthesis{FITBT23126, author = "Marek Sedl\'{a}\v{c}ek", type = "Bakal\'{a}\v{r}sk\'{a} pr\'{a}ce", title = "Optimalizace algoritm\r{u} SIMD instrukcemi", 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 = "czech", url = "https://www.fit.vut.cz/study/thesis/23126/" }