Master's Thesis

Optimization of KPI Processing

Final Thesis 2.85 MB

Author of thesis: Ing. Ondřej Šulc

Acad. year: 2022/2023

Supervisor: Ing. Jiří Hynek, Ph.D.

Reviewer: Ing. Vladimír Bartík, Ph.D.

Abstract:

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:

key performance indikators, KPI, smart cities, internet of things, IoT, database systems, object-relational mapping, ORM, optimization, parallelization, multithreading, Typescript, Node.js

Date of defence

22.06.2023

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

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

Topics for thesis defence

  1. Jakou roli v celém systému hrají NoSQL databáze zmiňované v teoretické části?
  2. Kolik KPI je aktuálně v systému počítáno a jaké jejich množství se předpokládá v budoucnu po vaší optimalizaci?
  3. Co bylo přesně předmětem vaši práce? Můžete to popsat vlastními slovy? 
  4. Proč jste používal relační databázi v práci s IoT?
  5. Uvažoval jste o dynamickém vyvažování zátěže?

Language of thesis

Czech

Faculty

Department

Study programme

Information Technology and Artificial Intelligence (MITAI)

Specialization

Cybersecurity (NSEC)

Composition of Committee

doc. Dr. Ing. Petr Hanáček (předseda)
prof. RNDr. Alexandr Meduna, CSc. (člen)
prof. Ing. Jiří Jaroš, Ph.D. (člen)
Ing. Vladimír Veselý, Ph.D. (člen)
Ing. Ondřej Kanich, Ph.D. (člen)
Mgr. Ing. Pavel Očenášek, Ph.D. (člen)

Supervisor’s report
Ing. Jiří Hynek, Ph.D.

Student ke své práci přistupoval svědomitě, dokázal pracovat samostatně a vytvořil použitelné řešení, díky kterému výrazně zefektivnil zpracování dat z chytrých zařízení v systému firmy Logimic. Výsledky byly publikovány. Navrhuji hodnocení stupněm A.

Evaluation criteria Verbal classification
Informace k zadání

Zadání vzniklo ve spolupráci s firmou Logimic. Cílem bylo analyzovat a optimalizovat současný způsob výpočtů tzv. klíčových identifikátorů výkonu (KPI) z dat získaných z chytrých zařízení. Student musel důkladně prostudovat proces ukládání dat do databáze InfluxDB a následné agregace těchto dat do relační databáze PosgtreSQL nasazené na platformě AWS. Dále se musel důkladně seznámit problematikou objektově relačního mapování (knihovnou TypeORM), prostředím NodeJS a možnostmi paralelních výpočtů, které byly použity pro optimalizaci výpočtu KPI. Zadání hodnotím jako složitější. Bylo splněno ve všech jeho bodech.

Práce s literaturou

Student prostudoval doporučenou literaturu a aktivně si vyhledával další zdroje týkající se zejména databázových systémů, principů paralelizace, KPI a použitých technologií.

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

Student komunikoval během celého akademického roku. Konzultace probíhaly online s vedoucím práce a Ing. Františkem Mikulů z firmy Logimic. Dále se mimo jiné aktivně zapojil i do dalších diskusí firmy týkajících se dané problematiky. Student řádně plnil zadané úkoly a práce postupovala dobrým tempem.

Aktivita při dokončování

Práce byla dokončena v předstihu, a mohla tak být řádně konzultována s vedoucím práce a vývojáři firmy Logimic.

Publikační činnost, ocenění

Způsoby využití paralelizace byly prezentovány formou posteru na konferenci Excel@FIT 2023.

Points proposed by supervisor: 95
Display more

Grade proposed by supervisor: A

Reviewer’s report
Ing. Vladimír Bartík, Ph.D.

Celkově práci hodnotím jako nadprůměrnou, nedostatky jsou pouze drobné, jinak je technická zpráva i realizační výstup kvalitní. Navrhuji proto hodnotit tuto práci stupněm B (velmi dobře).

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

Evaluation level: průměrně obtížné zadání

Zadání pro externího zadavatele vyžadovalo prozkoumání způsobu výpočtu KPI v jejich systému pracujícím s daty IoT zařízení a pokusit se o zefektivnění tohoto výpočtu, které by umožnilo navýšit počet KPI, které by současně mohly být počítány. Zadání bylo náročné díky nutnosti důkladně prozkoumat stávající řešení a vyzkoušet různé možnosti paralelizace těchto výpočtů.

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

Evaluation level: zadání splněno

Všechny body zadání byly splněny.

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Rozsah technické zprávy splňuje předepsané požadavky.

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

Technická zpráva je psána srozumitelně, organizace kapitol a jejich návaznost je v pořádku. Celé řešení je popsáno a vyhodnoceno velmi pečlivě a přínos vytvořeného řešení je tak zřejmý. V práci bych ocenil podrobnější vysvětlení některých údajů ukládaných v databázi a v kapitole popisující samotné řešení bych místo poměrně rozsáhlých ukázek zdrojového kódu ocenil spíše slovní vysvětlení některých konstrukcí. To však jsou jediné menší nedostatky, jinak hodnotím prezentační úroveň kladně.

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

Formální úpravu hodnotím také jako nadprůměrnou, chyb v textu a překlepů je minimální množství, typogtafické nedostatky se v technické zprávě prakticky nevyskytují.

86
Práce s literaturou

Z hlediska výběru studijní pramenů a práce s literaturou nevidím v práci žádné pochybení, vlastní výsledky jsou v práci jasně odlišeny od převzatých a z hlediska splnění norem je také vše v pořádku.

90
Realizační výstup

Realizačním výstupem je upravené řešení pro výpočet KPI v systému Smart Cities. Optimalizace byla realizována paralelizací celého výpočtu, ale i drobnými úpravami schématu databáze a přesunutím některých výpočtů do jiných částí kódu. Přínos celého řešení byl ověřen díky experimentům, které jsou v práci také popsány a vyhodnoceny.

90
Využitelnost výsledků

Výsledky práce využije především firma, která je zadavatelem práce. Díky výsledkům bude možné provést výpočet většího počtu KPI v rozumném čase.

Topics for thesis defence:
  1. Kolik KPI je aktuálně v systému počítáno a jaké jejich množství se předpokládá v budoucnu po vaší optimalizaci?
  2. Jakou roli v celém systému hrají NoSQL databáze zmiňované v teoretické části?
Points proposed by reviewer: 86
Display more

Grade proposed by reviewer: B