Efektivnost datových strukur v implementaci automatů
Loading...
Date
Authors
Koval, Milan
Advisor
Referee
Mark
F
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta informačních technologií
ORCID
Abstract
Tato práce se zabývá výkonnostní optimalizací knihovny Mata, která slouží k manipulaci s nedeterministickými konečnými automaty (NFA) v jazyce C++. I když Mata patří k nejrychlejším nástrojům svého druhu, práce ukazuje, že i u špičkově optimalizovaného kódu lze najít prostor pro další zlepšení. Největšího zrychlení bylo dosaženo zavedením vlastního lineárního alokátoru, který výrazně snížil režii při konstrukci automatů, a implementací odloženého řazení, které nahradilo per-insert třídění efektivnějším dávkovým přístupem. Tyto dvě změny přinesly měřitelná zlepšení výkonu především u výpočetně náročných operací, jako je průnik a doplněk. Ostatní zkoumané přístupy, včetně paralelizace a alternativních datových struktur, vykázaly zanedbatelný nebo žádný přínos. Výsledky byly ověřeny na sadě standardních benchmarků v reprodukovatelném prostředí.
This thesis focuses on performance optimization of the Mata library, a high-performance C++ toolkit for manipulating nondeterministic finite automata (NFA). Although Mata is already among the fastest tools of its kind, this work demonstrates that even in highly optimized code, there is still room for meaningful improvements. The most significant speedups were achieved through the introduction of a custom linear memory allocator, which greatly reduced allocation overhead during automata construction, and the implementation of deferred sorting, which replaced costly per-insert sorting with a more efficient batch-based approach. These two techniques led to measurable performance gains, particularly in computationally intensive operations such as intersection and complement. Other explored strategies, including parallelization and alternative data structure designs, showed negligible or no benefit. All results were validated using a standard benchmark suite in a controlled, reproducible environment.
This thesis focuses on performance optimization of the Mata library, a high-performance C++ toolkit for manipulating nondeterministic finite automata (NFA). Although Mata is already among the fastest tools of its kind, this work demonstrates that even in highly optimized code, there is still room for meaningful improvements. The most significant speedups were achieved through the introduction of a custom linear memory allocator, which greatly reduced allocation overhead during automata construction, and the implementation of deferred sorting, which replaced costly per-insert sorting with a more efficient batch-based approach. These two techniques led to measurable performance gains, particularly in computationally intensive operations such as intersection and complement. Other explored strategies, including parallelization and alternative data structure designs, showed negligible or no benefit. All results were validated using a standard benchmark suite in a controlled, reproducible environment.
Description
Keywords
Mata , optimalizace , alokátor , lineární alokátor , konečný automat , NKA , datové struktury , C++ , Mata , optimization , allocator , linear allocator , finite automaton , NFA , data structures , C++
Citation
KOVAL, M. Efektivnost datových strukur v implementaci automatů [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2025.
Document type
Document version
Date of access to the full text
Language of document
en
Study field
Informační technologie
Comittee
doc. RNDr. Milan Češka, Ph.D. (předseda)
Ing. Radek Kočí, Ph.D. (člen)
Ing. Šárka Květoňová, Ph.D. (člen)
Ing. David Bařina, Ph.D. (člen)
Ing. Marta Jaroš, Ph.D. (člen)
Date of acceptance
2025-06-17
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. Oponent i vedoucí hodnotili práci stupněm 4F, protože nebyly splněny klíčové body zadání. Zejména nebyly dostatečně vysvětleny a vyhodnoceny navržené optimalizace. Student nedokázal vyvrátit výtky oponenta. Komise shledala nedostatky práce natolik závažné, že se práci rozhodla hodnotit jako nevyhovující.
Result of defence
práce nebyla úspěšně obhájena
