Bachelor's Thesis

Discrete Simulation Library for C++

Final Thesis 1.62 MB

Author of thesis: Bc. 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
Information about assignment

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

Work with literature

Literaturu si student vyhledával zcela samostatně.

Activity during solution, consultations, communication

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.

Activity during completion

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

Publication activity, awards

-

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 Max. points
The difficulty of the assignment

Evaluation level: more difficult assignment

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. 

Presentation level of the technical report

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 100
Formal preparation of a technical report

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 100
Realisation output

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 100
Usability of results

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

The extent to which the requirements of the assignment have been met

Evaluation level: assignment fulfilled

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

Extent of the technical report

Evaluation level: is within the usual extent

48 stran v LaTexu.

Work with literature

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 100
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á