Přístupnostní navigace
E-application
Search Search Close
Master's Thesis
Author of thesis: Bc. Alexej Beňuš
Acad. year: 2025/2026
Supervisor: Dr. Ing. Petr Peringer
Reviewer: Ing. Martin Hrubý, Ph.D.
This thesis presents the design and implementation of a C++ library for discrete-event simulation. The library supports both process-oriented and event-oriented modelling and uses C++20 coroutines to implement lightweight simulation processes that can be suspended and resumed without using operating-system threads. The implementation includes resources, probability distributions, statistics collection, and interchangeable event calendar structures. Special attention is given to the pending event set, which is one of the central data structures in a discrete-event simulator. Several calendar implementations are provided, including simple structures based on standard C++ containers and specialized structures such as Calendar Queue, SNOOPy Calendar Queue, and FELT Calendar. The library is evaluated using correctness tests, calendar benchmarks, portability tests, and comparisons with SIMLIB/C++. The results show that the suitability of a calendar structure depends on the workload size and timestamp distribution. The comparison with SIMLIB also shows that runtime performance depends strongly on the selected benchmark: SIMLIB is faster in the resource-contention benchmark, while the implemented simulator performs better in the process-delay benchmark with distributed arrivals. In the tested large-process workloads, the implemented simulator also used less memory than SIMLIB.
C++, discrete-event simulation, simulation library, process-oriented simulation, coroutines, event calendar, Calendar Queue, SNOOPy, FELT, SIMLIB
Date of defence
25.06.2026
Result of the defence
Defended (thesis was successfully defended)
Grading
D
Process of defence
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 přítomných, např. k obsahu některých slajdů prezentace u SZZ, začlenění korutin do výsledného řešení či formátu zápisu maker. 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 D - uspokojivě.
Language of thesis
English
Faculty
Fakulta informačních technologií
Department
Department of Intelligent Systems
Study programme
Information Technology and Artificial Intelligence (MITAI)
Specialization
Intelligent Devices (NIDE)
Composition of Committee
doc. Ing. František Zbořil, CSc. (předseda) doc. Ing. Vladimír Janoušek, Ph.D. (místopředseda) Ing. Martin Hrubý, Ph.D. (člen) Ing. Jaroslav Rozman, Ph.D. (člen) Dr. Ing. Petr Peringer (člen) Ing. Tomáš Goldmann, Ph.D. (člen)
Supervisor’s reportDr. Ing. Petr Peringer
Aktivita studenta byla téměř po celou dobu řešení projektu podprůměrná, podrobnější detaily prakticky nekonzultoval. Výsledek je tím negativně ovlivněn - chybí mi především některé základní vlastnosti (například priority plánovaných událostí). Vzhledem k výše uvedeným problémům navrhuji jen podprůměrné hodnocení stupněm D.
Zadání této diplomové práce není složité - vyžaduje získat přehled o možnostech implementace diskrétních simulačních systémů a vytvořit na jejich základě experimentální implementaci s cílem použít vlastnosti moderního C++ v této oblasti (především korutiny pro implementaci procesů). Zadání je na základní úrovni splněno, navíc je v práci více implementací kalendáře událostí, než jsem požadoval. Celkově jsem ale očekával lepší výsledky.
Text byl dokončován na poslední chvíli. První nekompletní verzi jsem viděl 12 dnů před termínem odevzdání a druhou 3 dny před termínem. Některé moje připomínky byly do textu zapracovány, ale podle mého názoru by text vyžadoval ještě několik iterací.
-
Kromě předepsané literatury si student vyhledával zdroje samostatně.
Konzultace byly pouze 2 za celý letní semestr. Další komunikace probíhala přes e-mail, ale nepříliš často (jen 4 e-maily za únor--duben). Přístup studenta v tomto směru hodnotím jako podprůměrný.
Grade proposed by supervisor: D
Reviewer’s reportIng. Martin Hrubý, Ph.D.
Tato diplomová práce je dle mého názoru tragicky odbytá. DEVS je zmíněn formálně a zcela bez návaznosti na koncepci knihovny. Diplomantova knihovna je nepodařenou kopií knihovny SIMLIB v oboru diskrétní simulace. Přináší alespoň dva experimenty, které bych doporučil diplomantovi vyzdvihnout v jeho obhajobě: 1) rozbor vhodnosti použití různých kalendářových datových struktur ve vztahu k charakteru modelu (u jakých modelů se vyplatí volba konkrétní implementace kalendáře), 2) komentář k integraci coroutines do syntaxe simulačního modelu. Dle mého názoru použití coroutines kazí čitelnost modelů.
Evaluation level: zadání splněno pouze částečně s vážnějšími výhradami
Ke splnění zadání mám několik výhrad:
Evaluation level: je v obvyklém rozmezí
V kapitolách 2 a 3 se nachází formální popis DEVS. Zcela bez jakéhokoli vztahu k výsledné práci. Technická zpráva se nijak nezabývá konceptem Systémů hromadné obsluhy. Diplomant alespoň kladl větší důraz na různé implementace datové struktury pro kalednář událostí. Tomu věnuje i větší část experimentování. Run-time výkonnost simulátorů je významná, ale rozhodně je významnější postavit čitelnou syntaxi zápisu simulačních modelů, která v této DP vyšla dost rozpačitě.
Zdrojové texty nejsou příliš komentované. Naprosto nevhodně je do knihovny integrován sběr a správa statistik. Zcela bez koncepce.
Neočekávám.
Evaluation level: méně obtížné zadání
U tohoto zadání předpokládám záměr vytvořit procesně orientovanou simulační knihovnu inspirovanou DEVSem. Výsledek si bohužel z koncepce DEVS nevzal vůbec nic. Práci interpretuji jako velmi zjednodušenou a omezenou re-implementaci knihovny SIMLIB. Inovace spočívá v integraci coroutines.
Grade proposed by reviewer: E
Responsibility: Mgr. et Mgr. Hana Odstrčilová