Bachelor's Thesis

Discrete Simulation Library for C++

Final Thesis 1.62 MB

Author of thesis: Aleksandr Kasianov

Acad. year: 2025/2026

Supervisor: Dr. Ing. Petr Peringer

Reviewer: doc. Ing. Vladimír Janoušek, Ph.D.

Abstract:

This bachelor thesis presents the design and implementation of a discrete-event simulation library written in C++23, with support for both native real-time visualisation through SDL2 and Dear ImGui and browser deployment via WebAssembly. The thesis first surveys existing libraries (SimPy, OMNeT++, JaamSim, SIMLIB/C++, Arena, AnyLogic) and characterises their modelling paradigms and visualisation modalities. The design and implementation of LDS are then described, including an explicit-state-machine process model chosen for WebAssembly compatibility, the event scheduler, the resource and statistics primitives, and the visualisation layer. The thesis closes with an evaluation of the library on a set of demonstration models and a comparison of its performance across native compilers and Emscripten.

Keywords:

discrete simulation, C++, library, visualization, WebAssembly, browser, SDL2, ImGui, Emscripten

Date of defence

19.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaDznamka

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 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 D.

Topics for thesis defence

  1. Jaké by mohly být jiné možnosti realizace kromě explicitního stavového automatu? Zvažoval jste je?
  2. Jaké jsou hlavní limity současné implementace při škálování na velmi rozsáhlé simulační modely s miliony plánovaných událostí?
  3. Jakým způsobem jste měřil získané hodnoty?
  4. Proč větší workload funguje rychleji?

Language of thesis

English

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

prof. RNDr. Alexandr Meduna, CSc. (předseda)
prof. Ing. Martin Čadík, Ph.D. (místopředseda)
Ing. Jaroslav Rozman, Ph.D. (člen)
Ing. Zbyněk Křivka, Ph.D. (člen)
Ing. Lukáš Kekely, Ph.D. (člen)

Supervisor’s report
Dr. Ing. Petr Peringer

Aktivita studenta byla celou dobu minimální, prakticky nic nekonzultoval, o postupu práce neinformoval a text práce jsem téměř nemohl ovlivnit. Tento přístup hodnotím velmi negativně. Nicméně práce byla nakonec odevzdána včas. Z těchto důvodů navrhuji pouze minimální hodnocení stupněm E.

Evaluation criteria Verbal classification
Informace k zadání

Zadání považuji za průměrně obtížné, je zaměřeno na diskrétní simulaci v moderním C++ a základní vizualizaci modelů systémů hromadné obsluhy. Výsledek se neodvažuji hodnotit z hlediska originality - ve zdrojovém kódu nikde není identifikace autora a postup vytváření jsem nemohl průběžně sledovat (viz dále).

Práce s literaturou

Literaturu si student vyhledával zcela samostatně.

Aktivita během řešení, konzultace, komunikace

Aktivita studenta byla velmi podprůměrná - prakticky nekomunikoval po celo dobu řešení a to ani e-mailem. Jediná konzultace v letním semestru se týkala textu práce a proběhla týden před odevzdáním.

Aktivita při dokončování

Úplný text práce jsem viděl poprvé 4 dny před odevzdáním, proto jsem v podstatě neměl možnost do něj zasahovat.

Publikační činnost, ocenění

-

Points proposed by supervisor: 50

Grade proposed by supervisor: E

Jde o kvalitně zpracované technické dílo s použitelným realizačním výstupem.

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: obtížnější zadání

Zadání vyžaduje nastudovat principy diskrétní simulace a existující knihovny a jiné nástroje, následně pak navrhnout a implementovat vlastní knihovnu v moderním C++23, včetně vizualizační vrstvy, zajistit její multiplatformní přenositelnost včetně WebAssembly a vytvořit demonstrační i validační scénáře. 

Prezentační úroveň technické zprávy

Práce je logicky strukturovaná a jednotlivé kapitoly na sebe dobře navazují. Teoretická část systematicky zavádí terminologii diskrétní simulace, modelovací paradigmata a principy plánování událostí, které jsou následně využity při návrhu knihovny. Pozitivně hodnotím přehled existujících nástrojů i diskusi omezení WebAssembly. Implementační část je technicky kvalitní a obsahuje relevantní detaily.

Slabší stránkou práce je místy až přílišná detailnost některých implementačních pasáží, které zabírají relativně mnoho prostoru na úkor možné hlubší diskuse alternativních variant řešení. 

85
Formální úprava technické zprávy

Typografická i jazyková úroveň práce je velmi dobrá. Text je psán srozumitelně, terminologie je používána správně a stylistická úroveň je na vysoké úrovni. Drobným nedostatkem je, že místy je text zbytečně „hustý“ a obtížněji čitelný.

90
Realizační výstup

Realizační výstup představuje technicky kvalitní implementaci diskrétní simulační knihovny. Architektura je promyšlená, modulární a konzistentní. Velmi pozitivně hodnotím validační část proti analytickým výsledkům M/M/1 a M/M/c systémů.

Kritičtější pohled si zaslouží ergonomie modelovacího API. Explicitní stavový stroj s ručně spravovanými stavy je sice technicky obhajitelný vzhledem k omezením WebAssembly, ale z pohledu použitelnosti vede ke komplikovaným modelům. Uvítal bych hlubší analýzu alternativních možností.

Dále chybí hlubší diskuse paměťové režie a škálovatelnosti při velmi vysokých počtech procesů.

85
Využitelnost výsledků

Výsledkem je funkční a relativně rozsáhlá implementace vlastní DES knihovny s unikátní kombinací vlastností: C++23, procesní simulace, běh ve web browseru a real-time vizualizace. Výsledky jsou prakticky použitelné. 

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Zadání bylo splněno ve všech bodech.

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

48 stran v LaTexu.

Práce s literaturou

Autor používá relevantní a odborně kvalitní zdroje pokrývající jak klasickou literaturu diskrétní simulace, tak moderní technické zdroje týkající se WebAssembly, C++ coroutine mechanismů a konkrétních knihoven. Citace jsou v textu používány korektně a v odpovídajícím kontextu.

Pozitivně hodnotím i explicitní přiznání využití AI asistenta pro jazykovou korekci a rešeršní podporu.

95
Topics for thesis defence:
  1. Jaké jsou hlavní limity současné implementace při škálování na velmi rozsáhlé simulační modely s miliony plánovaných událostí?
  2. Jaké by mohly být jiné možnosti realizace kromě explicitního stavového automatu? Zvažoval jste je?
Points proposed by reviewer: 89

Grade proposed by reviewer: B

Responsibility: Mgr. et Mgr. Hana Odstrčilová