Bachelor's Thesis

System for Orchestrating and Monitoring Jobs in Personalized Medicine

Final Thesis 2.78 MB

Author of thesis: Oleksandr Musiichuk

Acad. year: 2025/2026

Supervisor: Ing. Marta Jaroš, Ph.D.

Reviewer: Ing. Radek Duchoň

Abstract:

This thesis focuses on the design and implementation of a module for orchestrating a task
graph in the k-Dispatch system, which is used in personalized medicine to manage and run
computationally demanding tasks in HPC environments. The module transforms a workflow
graph template into an executable, annotated form by assigning binary files and execution
parameters to its nodes for remote computing environments.

The goal of the thesis was to separate and extend the orchestration logic, create a module
for selecting suitable execution configurations, and integrate it into the existing architecture
of k-Dispatch. The solution also includes an internal priority queue system for managing
the processing of treatment plans and structured logging that enables monitoring using
Grafana, Loki, and Promtail.

The thesis also describes modifications to the database layer, integration of the new modules
into the DispatchAndTransfer component, and the creation of a testing infrastructure.
The solution was verified using unit and integration tests, including demonstration scenarios
in a test HPC environment implemented using Docker and on a virtual cluster with the
Slurm workload manager. The result is a modular extension of k-Dispatch that simplifies
workflow preparation for execution and provides a foundation for further optimization of
job scheduling.

Keywords:

k-Dispatch, orchestrator, workflow orchestration, task graph, HPC, priority queue, execution configuration optimization, structured logging, Grafana, Docker

Date of defence

15.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

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

Topics for thesis defence

  1. V práci je uvedeno procentuální pokrytí testy. Jaká metrika pokrytí byla konkrétně použita? Jedná se o Line Coverage (LoC), Branch Coverage, nebo případně jinou metriku?
  2. V práci je tvrzeno, že pokrytí testy je vysoké, jakou výši pokrytí by šlo v dané metrice považovat za standardní?
  3. Modul Optimizer vybírá konfigurace na základě historických dat. Jak je řešena situace, kdy pro novou kombinaci parametrů žádná historická data neexistují, nebo se změní binární soubor?

Language of thesis

Czech

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. RNDr. Milan Češka, Ph.D. (předseda)
doc. Ing. Jan Kořenek, Ph.D. (místopředseda)
Ing. Zdeněk Materna, Ph.D. (člen)
Ing. Miloš Musil, Ph.D. (člen)
Ing. Martin Hrubý, Ph.D. (člen)

Supervisor’s report
Ing. Marta Jaroš, Ph.D.

Bakalářská práce splnila stanovené cíle. Realizované řešení je technicky kvalitní, přehledné a dobře zdokumentované. Pozitivně hodnotím, že celý vývoj probíhal v repozitáři GitLabu a kód je otestovaný a nasazený.


Práce byla prezentována formou posteru na studentské konferenci Excel a na mezinárodní konferenci HPCSE.

Evaluation criteria Verbal classification
Information about assignment

Zadání práce hodnotím jako středně obtížné. Student musel nejprve proniknout do existující architektury a zdrojových kódů systému k-Dispatch, což představovalo významnou část řešeného problému. Následně bylo cílem práce modernizovat jádro systému, modulárně navrhnout třídy odpovědné za orchestraci a optimalizaci spouštění úloh a upravit práci s objekty nové databázePráce tematicky navazuje na výzkumné aktivity v rámci skupiny SC@FIT a má přímou vazbu na aplikace v medicínském prostředí, což zvyšuje její praktickou hodnotu.

Součástí řešení bylo také vytvoření sady automatizovaných testů pro nově vzniklé třídy a jejich integrace do procesu continuous integration (CI) v prostředí GitLabu. Tím student přispěl ke zvýšení spolehlivosti a udržovatelnosti výsledného řešení. 

Textová část práce poskytuje dostatečný popis navrženého a implementovaného řešení včetně automatizovaných testů a nasazení aplikace.

Práce byla prezentována formou posteru na studentské konferenci Excel a na mezinárodní konferenci HPCSE.

Work with literature

Práci s literaturou hodnotím pozitivně. Práce využívá dostatečné množství relevantních zdrojů.

Activity during solution, consultations, communication

Konzultace ke zpracování práce probíhaly osobně. V zimním semestru se uskutečňovaly pravidelně každé dva týdny, v letním semestru pak s týdenní frekvencí. Student byl na konzultace vždy dobře připraven, dělal si vlastní poznámky a při řešení práce postupoval samostatně a systematicky. Student práci vyvíjel v repozitáři GitLab a postup práce dokumentoval pomocí systému Issues

Activity during completion

Student dokončil realizační část práce v požadovaném termínu, zatímco finalizaci textové části se intenzivně věnoval zejména v období před odevzdáním bakalářské práce. Verze předložená k připomínkám ještě nebyla zcela dokončena, nicméně student následně zapracoval téměř všechny vznesené připomínky a doporučení.

Publication activity, awards

Práce byla prezentována formou posteru na studentské konferenci Excel 2026 a na mezinárodní konferenci HPCSE 2026.

Points proposed by supervisor: 93

Grade proposed by supervisor: A

Reviewer’s report
Ing. Radek Duchoň

Student prokázal tvůrčí schopnosti v oblasti orchestrace úloh a integrace do systému k-Dispatch. Navrhl a vytvořil funkční řešení, které bylo i nasazeno.


Kvalita technické zprávy je na druhou stranu nižší. Chybí větší detaily implementace a algoritmů a části textů se naopak významově opakují.


S ohledem na kvalitu praktického výstupu, ale slabší úroveň zpracování zprávy, hodnotím práci známkou C.

Evaluation criteria Verbal classification Points
The difficulty of the assignment

Evaluation level: moderately difficult assignment

Zadání práce kombinuje analýzu existujícího systému, návrh nové softwarové komponenty, její implementaci, testování i nasazení. Student se musel seznámit se systémem k-Dispatch, jeho architekturou a databází, a zároveň respektovat metodiku návrhu software používanou ve skupině SC@FIT.

Stěžejní část práce spočívala v návrhu a implementaci nového modulu pro orchestraci a monitorování úloh, včetně vytvoření automatizovaných testů, kontejnerizovaného nasazení a dokumentace. Celkově lze hodnotit technickouo náročnost zadání jako odpovídající mírně náročnější bakalářské práci.

Presentation level of the technical report

V práci chybí přiložené zadání.

Práce je členěna do 6 kapitol. Těm chybí krátké popisy, text je výhradně v podkapitolách. Kapitoly jsou v logické střuktuře začínající krátkým teoretickým úvodem, kde je čtenář seznámen s architekturou systému k-Dispatch a další řešenou problematikou. Následuje návrh aplikace, kde se mimo nutných úprav existujícího systému řeší návrh nové orchestrační vrstvy a nových tříd Orchestrator a Optimizer.

Následuje implementační část, která je místy příliš popisná, chybí mi podrobnější pohled na implementační detaily a ukázky kódu, nebo konkrétní způsob realizace algoritmů. Testování by také mohlo být rozepsáno místy detailněji, používá se zde například metrika pokrytí kódu v procentech, chybí však zmínka zda se jedná o pokrytí loc, statementů, či jinou metriku.

Obecně je však několik míst s prakticky se opakujícím sdělením, vhodnější by bylo odkazovat se např. jako "Jak již bylo zmíněno v kapitole X" a dodat pouze kratší shrnutí s potřebnými informacemi v danou chvíli, nebo naopak uvést, že bude nějaká část detailněji rozebrána později v kapitole Y.

60
Formal preparation of a technical report

Práce je na první pohled v pořádku, vyskytuje se však několik míst s chybějící diakritikou, pár textů přes okraj stránky, nekonzistence v užití mezery před citací (např. "Knihovny scikit-learn[18] a scikit-optimize [8]"), v případě kapitoly 4.5 je pak například vidět několik větných členů na konci řádků, které již mají být na dalším. Přítomny jsou také další drobné chyby v užití interpunkce a typografické chyby.

65
Realisation output

Realizačním výstupem práce je rozšíření systému k-Dispatch o novou orchestration vrstvu umožňující automatizované přiřazování konfigurací a výběr vhodných parametrů pro spouštění úloh. Součástí řešení jsou rovněž úpravy databázové vrstvy, prioritního plánování a monitorovací infrastruktury.

Zdrojové texty vypadají rozumně, jejich struktura odpovídá zbytku aplikace na kterou bylo navazováno. Vyskytují se však chyby v názvech, například jméno souboru "_orchestrator_parrarel.py"

Výsledné řešení je funkční, rozumně modulární a umožňující další rozšiřitelnost.

85
Usability of results

Výsledné řešení je funkční a nasazené.

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

Evaluation level: assignment fulfilled

Student splnil všechny body zadání.

Extent of the technical report

Evaluation level: meets the minimum requirements only

Text práce je kratší s splňuje spíše minimální požadavky na rozsah.

Work with literature

Použitá literatura odpovídá zaměření práce a zahrnuje zdroje týkající se HPC prostředí, workflow systémů, optimalizace výpočtů i použitých nástrojů a technologií. Autor vhodně využívá také interní dokumentaci a odborné publikace související se systémem k-Dispatch.

85
Topics for thesis defence:
  1. V práci je uvedeno procentuální pokrytí testy. Jaká metrika pokrytí byla konkrétně použita? Jedná se o Line Coverage (LoC), Branch Coverage, nebo případně jinou metriku?
  2. V práci je tvrzeno, že pokrytí testy je vysoké, jakou výši pokrytí by šlo v dané metrice považovat za standardní?
  3. Modul Optimizer vybírá konfigurace na základě historických dat. Jak je řešena situace, kdy pro novou kombinaci parametrů žádná historická data neexistují, nebo se změní binární soubor?
Points proposed by reviewer: 75

Grade proposed by reviewer: C

Responsibility: Mgr. et Mgr. Hana Odstrčilová