MARCINA, T. Paralelní optimalizační metody [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2023.
Student Tomáš Marcina se ve své práci zabýval implementací paralelních optimalizačních metod a jejich následným srovnáním. Toto téma považuju za náročné a značně přesahující rozsah bakalářského studia. Rozsah práce je 32 stran od úvodu po závěr. Práce je psána logicky a v souvislostech. Z hlediska formálního jsem nezaznamenal žádné výrazné chyby, pouze několik překlepů. Jelikož je práce psána ve slovenštině, nejsem schopen posoudit studentův pravopis. Za teoretický úvod lze považovat první tři kapitoly, ve kterých student velmi dobře představuje problematiku optimalizací, paralelní výpočty a jím zvolené paralelní optimalizační metody. Vše dostatečně cituje z různých zdrojů – knih, článků i technických dokumentací. Ve zbytku práce se student zabývá dvěma způsoby implementace zvolených metody a jejich celkovým srovnáním na benchmarkových funkcích. Dosažené výsledky úspěšně komentuje. Samotným jádrem práce byla knihovna optimalizačních algoritmů CUDA. Student pracoval průběžně a s velkým zápalem. Pravidelně využíval konzultací a bral si k srdci všechny výtky a rady. Předložené zdrojové kódy jsou přínosné a dále využitelné. Naneštěstí student nedodal žádný komentář, a tak může být obtížné se ve všech souborech vyznat. Správa projektu však nebyla cílem bakalářské práce. Celkově jsem s prací pana Marciny spokojen a hodnotil bych ji 95 body a stupněm A.
Študent Tomáš Marcina vypracoval bakalársku prácu na téma Paralelní optimalizační metody. Práca má celkovo 51 strán, samotný obsah práce od úvodu po záver je tvorený 33 stranami. Práca sa zaoberá implementáciou optimalizačných metód v prostredí MATLAB a taktiež pre grafické karty NVIDIA v jazyku CUDA. Súčasťou odovzdanej práce je taktiež sada vytvorených funkcií. V práci sú jednotlivé algoritmy najskôr teoreticky vysvetlené následne sú ukázané fukncie na ktorých prebieha testovanie, a posledná časť práce sa zaoberá samotnou implementáciou a testovaním. Všetky zmienené časti sú zrozumiteľne vysvetlené a práca taktiež obsahuje potrebné rovnice vysvetľujúce správanie jednotlivých algoritmov. Testovanie je pomerne podrobne vysvetlené a práca obsahuje množstvo grafov zobrazujúcich správanie jednotlivých algoritmov a rýchlosť konvergencie. Práca tiež obsahuje Tabuľky porovnávajúce rýchlosti algoritmov, ich presnosti, ako aj porovnanie času výpočtu medzi implementáciou na procesore v prostredí MATLAB a implementáciou pre grafickú kartu v jazyku CUDA. Taktiež musím konštatovať že ide o pomerne náročné zadanie z pohľadu času potrebného pre implementáciu algoritmov a ich vyladenie. Po jazykovej stránke je práca na dobrej úrovni, aj keď v niektorých miestach je možné nájsť preklepy. Na jednom mieste sa dokonca zdá byť vynechaný kúsok vety alebo celého odstavca. Študent taktiež opravil niektoré nedostatky ktoré mu boli vytýkané počas obhajoby semestrálneho projektu, avšak nie všetky. Niektoré vzorce v práci nie sú úplne presné (napríklad pri počte agentov 100 je podľa rovnice 2.2 možné inicializovať iba prvých 10), v iných rovniciach ako napríklad 2.5, 2.6 atď. by bolo vhodné uviesť aj indexovanie kroku. Práca s literatúrou je taktiež na dobrej úrovni a zdroje sú náležite citované. Okrem samotného prečítania som sa pozrel aj na pripravené funkcie. Pripravené kódy pre MATLAB fungujú podľa popisu v práci a je možné ich jednoducho upraviť a následne používať pre rôzne aplikácie. HW na ktorom boli vykonané testy je v práci taktiež spomenutý. Chybu som našiel iba vo funkcii umelých včelích kolónií kedy sa agenti dostali mimo vymedzené okrajové podmienky. Pri pohľade na pripravené zdrojové kódy CUDA. Je patrené že študent si musel mnohé veci sám naštudovať. Po kompilácií programu a skúšaní som však narazil na mnohé problémy. Pri väčšine algoritmov pri použití 2D funkcie „sphere“ dochádza k problémom s výsledkami kedy program napríklad tvrdí že nájdené minimum v bode X1=444.811, X2=-221.17 má hodnotu 1051.51. Pri porovnaní s implementáciou v prostredí MATLAB je vidieť že správne funguje iba modifikovaná metóda GWO. Tento problém môže byť banálny súvisiaci so zlým indexovaním alebo so synchronizáciou vlákien na GPU, ale taktiež môže byť aj závažnejší. V takom prípade by samotné porovnanie časov výpočtu bolo taktiež chybné. Avšak je nutné povedať že pripraviť funkčné a efektívne kódy nie je vôbec jednoduchá záležitosť. Napriek nájdeným nedostatkom a problémov musím taktiež prihliadnuť na vysokú náročnosť práce a preto by som prácu hodnotil známkou B (88b).
eVSKP id 151738