diplomová práce

Optimalizace zpracování klíčových indikátorů výkonu

Text práce 2.85 MB

Autor práce: Ing. Ondřej Šulc

Ak. rok: 2022/2023

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

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

Abstrakt:

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.

Klíčová slova:

klíčové indikátory výkonu, KPI, chytrá města, internet věcí, IoT, databázové systémy, objektově relační mapování, ORM, optimalizace, paralelizace, multithreading, Typescript, Node.js

Termín obhajoby

22.06.2023

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaAznamka

Klasifikace

A

Průběh obhajoby

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.

Otázky k obhajobě

  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?

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Informační technologie a umělá inteligence (MITAI)

Specializace

Kybernetická bezpečnost (NSEC)

Složení komise

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)

Posudek vedoucího
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.

Kritérium hodnocení Slovní hodnocení
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.

Výsledný počet bodů navržený vedoucím: 95

Známka navržená vedoucím: A

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

Kritérium hodnocení Slovní hodnocení Body
Náročnost zadání

Stupeň hodnocení: 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í

Stupeň hodnocení: zadání splněno

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

Rozsah technické zprávy

Stupeň hodnocení: 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.

Otázky k obhajobě:
  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?
Výsledný počet bodů navržený oponentem: 86

Známka navržená oponentem: B

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová