Original title:
Optimalizace zpracování klíčových indikátorů výkonu
Translated title:
Optimization of KPI Processing
Authors:
Šulc, Ondřej ; Bartík, Vladimír (referee) ; Hynek, Jiří (advisor) Document type: Master’s theses
Year:
2023
Language:
cze Publisher:
Vysoké učení technické v Brně. Fakulta informačních technologií Abstract:
[cze][eng]
Tato práce se zabývá optimalizací zpracování dat z IoT senzorů chytrých měst do podoby klíčových indikátorů výkonu (zkr. KPI). KPI jsou prostředkem pro monitorování velkého množství dat a vyjádření stavu výkonnostních faktorů, ovlivňujících prosperitu celého města. Zpracování dat do této podoby je výpočetně náročný proces, který se ale skládá z velkého množství vzájemně nezávislých výpočtů. Cílem této práce tedy bylo provést optimalizaci využitím paralelizace. Při paralelním zpracování lze výpočty rozdělit mezi více vláken a mohou tak být plně využívány všechny dostupné výpočetní prostředky (jádra CPU). Tento koncept byl prakticky implementován v projektu Smart City od firmy Logimic. Projekt je ovšem vybudován na platformě Node.js a při využití paralelizace dochází ke komplikacím s využíváním knihoven pro objektově relační mapování (zkr. ORM). Knihovny pro ORM na platformě Node.js nejsou vždy připraveny pro fungování v paralelním prostředí. Problém je v práci řešen vytvořením samostatné instance použité knihovny pro každé paralelní vlákno. Práce se zaměřuje na snížení režie s tím spojené a také na správné rozdělování práce mezi paralelní vlákna, aby docházelo k rovnoměrnému využití všech jader. Výsledky této práce dokazují, že optimalizace zpracování dat z IoT využitím paralelizace vede k významnému zrychlení, které odpovídá Amdahlovu zákonu, protože problémy s režií je možné snížit na zanedbatelné minimum.
This thesis deals with the optimization of data processing from IoT sensors of smart cities into the form of key performance indicators (abbr. KPI). KPIs are a mean of monitoring a large amount of data and expressing the status of performance factors affecting the prosperity of the entire city. Data processing in this form is a computationally demanding process, but it consists of a large number of mutually independent calculations. Therefore the goal of this thesis was to perform optimization using parallelization. In parallel processing, calculations can be divided between multiple threads, enabling all available computing resources (CPU cores) to be fully used. This concept was practically implemented in the Smart City project of Logimic company. However, the project is built on the Node.js platform, and when using parallelization there are complications with the use of libraries for object-relational mapping (abbr. ORM). ORM libraries on the Node.js platform are not always ready to work in a parallel environment. This problem is solved by creating a separate instance of the used library for each parallel thread. The thesis focuses on reducing the overhead associated with this and also on the correct distribution of work between parallel threads so that all cores are used equally. The results of this work prove that optimizing IoT data processing using parallelization leads to a significant speedup that conforms to Amdahl's law, as overhead problems can be reduced to a negligible minimum.
Keywords:
database systems; internet of things; IoT; key performance indikators; KPI; multithreading; Node.js; object-relational mapping; optimization; ORM; parallelization; smart cities; Typescript; chytrá města; databázové systémy; internet věcí; IoT; klíčové indikátory výkonu; KPI; multithreading; Node.js; objektově relační mapování; optimalizace; ORM; paralelizace; Typescript
Institution: Brno University of Technology
(web)
Document availability information: Fulltext is available in the Brno University of Technology Digital Library. Original record: http://hdl.handle.net/11012/213222