<?xml version="1.0" encoding="utf-8"?>
<Gradivo ID="96980" NadgradivoID="0" NRID="28141088" OceID="0" DomainUrl="https://dk.um.si/" IzpisPolniUrl="https://dk.um.si/IzpisGradiva.php?lang=slv&amp;id=96980" StOgledov="206" StPrenosov="64" StOcen="0" VsotaOcen="0" DatumIzvoza="2026-09-30 11:13:26" OcenaSkupna="0" StPodgradiv="0" StudijskiProgramEvsID="" JeIndeksirano="0" JeVecAvtorjev="0" DovoliZahtevkeZaDostop="0">
  <PID Url="http://hdl.handle.net/20.500.12556/DKUM-96980">20.500.12556/DKUM-96980</PID>
  <Naslov>A general-purpose node editor for graph pipelines with just-in-time parallel execution</Naslov>
  <Podnaslov>master&#039;s thesis</Podnaslov>
  <TujJezik_Naslov>Splošnonamenski urejevalnik vozlišč za grafovske cevovode s sprotnim vzporednim izvajanjem</TujJezik_Naslov>
  <TujJezik_Podnaslov></TujJezik_Podnaslov>
  <Opis>In this thesis, we design a general-purpose, high-performance node editor for graph-based pipelines. It supports dynamically loading and hot-reloading node definitions via DLLs, integrates (JIT) parallel execution, and works with an advanced variant and type conversion system. We also introduce a custom-built retained-mode Direct2D rendering engine optimized for node graph visualization and interaction. The proposed implementation is validated through a series of evaluations, including an applied geospatial pipeline, JIT scheduling performance across input sizes, and scalability on synthetic, highly parallel graphs. Empirical results indicate near-theoretical multi-threaded speedup with high CPU utilization, overhead reductions on light workloads attributable to the JIT scheduler, and overall low engine overhead. Additionally, a comprehensive comparison with industry-standard editors (LabVIEW, Blender, Unreal Engine) is presented, highlighting the unique support for custom hot-reloadable nodes, CLI execution of individual graphs, and incremental graph execution. Finally, we showcase ongoing real-world deployments of our node editor system.</Opis>
  <TujJezik_Opis>V magistrskem delu predstavimo zasnovo in implementacijo splošnonamenskega, visokozmogljivega urejevalnika vozlišč za grafovske cevovode. Ta uporabnikom omogoča vizualno grajenje in izvajanje procesnih cevovodov. Slednji so predstavljeni v obliki acikličnega grafa, pri čemer vozlišča predstavljajo operacije ali funkcije, povezave med njimi pa tok podatkov. Grafovski cevovodi so ključni koncept na številnih področjih, kot so obdelava podatkov, strojno učenje, računalniška grafika in avtomatizacija delovnih tokov, saj omogočajo modularno, pregledno in učinkovito modeliranje kompleksnih procesov. Urejevalnik vozlišč, ki smo ga zasnovali v tem magistrskem delu, je zmogljiv, razširljiv in enostaven za uporabo, zato je v praksi koristen za različne namene.

Zasnovani sistem podpira dinamično nalaganje in zamenjavo definicij vozlišč iz dinamičnih knjižnic (DLL) med delovanjem, vključuje sprotno (JIT) vzporedno izvajanje in uporablja napreden sistem tipov s pretvorniki, ki omogočajo varno povezovanje priključkov različnih vhodov in izhodov med vozlišči. Pred zagonom pogon izvaja statično preverjanje grafov, skladnosti podatkovnih tipov ter prisotnosti ciklov, kar zagotavlja pravilnost izračuna. Za vizualizacijo in interakcijo z grafi smo razvili namenski upodabljalni pogon, ki temelji na Direct2D in je optimiziran za izris velikih grafov. Urejevalnik serializira in hrani grafe v formatu JSON, kar omogoča njihovo nalaganje ob ponovnem zagonu in izvajanje grafov brez grafičnega vmesnika prek ukazne vrstice (CLI). S tem omogočamo uporabo sistema v različnih okoljih, vključno s strežniki in avtomatiziranimi cevovodi.

Implementirani urejevalnik eksperimentalno ovrednotimo v treh sklopih: (i) praktičen geoprostorski cevovod (agregacija točk in tvorjenje toplotnih kart) od uvoza do vizualizacije, (ii) merjenje zmogljivosti JIT razvrščevalnika ter (iii) razširljivost na sintetičnih usmerjenih acikličnih grafih (DAG) z visoko stopnjo paralelizma. Vgrajena instrumentacija meri uporabniški, procesorski in režijski čas izvajanja. V eksperimentih preizkusimo več nastavitev števila niti, da prikažemo učinek paralelizacije in režijskega časa samega pogona.

Empirični rezultati prikazujejo skoraj teoretičen pospešek pri večnitnem izvajanju z visoko izkoriščenostjo CPU, zmanjšanje režijskega časa v primerih z lahkimi obremenitvami, kar je mogoče pripisati JIT razvrščevalniku, in nizek režijski čas pogona. Geoprostorski primer potrdi aplikativno delovanje od uvoza podatkov do vizualizacije, inkrementalno izvajanje pa opazno zmanjša ponovne izračune pri delnih spremembah in iterativnem razvoju cevovoda. Diagnostični podatki omogočajo hitro prepoznavo ozkih grl in optimizacijo cevovodov.

V magistrskem delu naredimo tudi obširno primerjavo z obstoječimi urejevalniki vozlišč v industriji in kreativnih okolij (LabVIEW, Blender, Unreal Engine), pri čemer izpostavimo, da ti praviloma ne ponujajo podpore za izmenjavo definicij vozlišč med delovanjem, strogo statično preverjanje grafov, inkrementalno izvajanje ter izvajanje prek CLI. Naš pristop združuje možnost nalaganja zunanjih definicij vozlišč z zanesljivim sprotnim izvajanjem in s tem zapolnjuje vrzel med orodji za hitro iteracijo in orodji za avtomatizirane cevovode.

Omejitve in nadaljnje delo vključujejo podporo za zanke in vgnezdeni grafi, izračun s podporo GPU ter pretvorbo obstoječih funkcij PyTorch C++ v vozlišča, kar bi omogočilo nalaganje, urejanje, učenje in inferenco modelov umetne inteligence znotraj urejevalnika vozlišč.</TujJezik_Opis>
  <KljucneBesede>
    <Beseda>node editor</Beseda>
    <Beseda>graphs</Beseda>
    <Beseda>parallelization</Beseda>
    <Beseda>dataflow computation</Beseda>
    <Beseda>just-in-time execution</Beseda>
  </KljucneBesede>
  <TujJezik_KljucneBesede>
    <Beseda>urejevalnik vozlišč</Beseda>
    <Beseda>grafi</Beseda>
    <Beseda>paralelizacija</Beseda>
    <Beseda>podatkovno vodeno računanje</Beseda>
    <Beseda>sprotno izvajanje</Beseda>
  </TujJezik_KljucneBesede>
  <Potrjeno>true</Potrjeno>
  <JeZaklenjeno>true</JeZaklenjeno>
  <JeRecenzirano>false</JeRecenzirano>
  <Zaloznik>[M. Nikov]</Zaloznik>
  <Izvor></Izvor>
  <Jezik ID="1033" ISO639-3="eng">Angleški jezik</Jezik>
  <TujJezik ID="1060" ISO639-3="slv">Slovenski jezik</TujJezik>
  <Povezave></Povezave>
  <Pokrivanje></Pokrivanje>
  <CasovnoPokritje></CasovnoPokritje>
  <AvtorskePravice></AvtorskePravice>
  <VrstaGradiva ID="mb22" DRIVER="info:eu-repo/semantics/masterThesis">Magistrsko delo/naloga</VrstaGradiva>
  <DatumVstavljanja>2026-02-09 22:07:31</DatumVstavljanja>
  <DatumObjave>2026-03-03 12:42:41</DatumObjave>
  <DatumSpremembe>2026-03-19 11:35:34</DatumSpremembe>
  <DatumTrajnegaHranjenja>0000-00-00 00:00:00</DatumTrajnegaHranjenja>
  <LetoIzida>2026</LetoIzida>
  <LetoIzidaDo>0</LetoIzidaDo>
  <KrajIzida>Maribor</KrajIzida>
  <LetoIzvedbe>0</LetoIzvedbe>
  <KrajIzvedbe>Maribor</KrajIzvedbe>
  <Opomba></Opomba>
  <StStrani>1 spletni vir (1 datoteka PDF (XIII, 54 str.))</StStrani>
  <StevilcenjeNivo1></StevilcenjeNivo1>
  <StevilcenjeNivo2></StevilcenjeNivo2>
  <Kronologija></Kronologija>
  <Patent_Stevilka></Patent_Stevilka>
  <Patent_DatumVeljavnosti>0000-00-00</Patent_DatumVeljavnosti>
  <VerzijaDokumenta>NiDoloceno</VerzijaDokumenta>
  <StatusObjaveDrugje>NiDoloceno</StatusObjaveDrugje>
  <VrstaStroskaObjave>NiDoloceno</VrstaStroskaObjave>
  <DatumPoslanoVRecenzijo>0000-00-00</DatumPoslanoVRecenzijo>
  <DatumSprejetjaClanka>0000-00-00</DatumSprejetjaClanka>
  <DatumObjaveClanka>0000-00-00</DatumObjaveClanka>
  <Licence>
    <Licenca ID="1" Kratica="CC BY-NC-ND 4.0" Naziv="Creative Commons Priznanje avtorstva-Nekomercialno-Brez predelav 4.0 Mednarodna" URL="http://creativecommons.org/licenses/by-nc-nd/4.0/deed.sl" Logo="by-nc-nd.eu.png" LogoPolniUrl="https://dk.um.si/teme/dkumDev2/img/licence/by-nc-nd.eu.png" DatumZacetkaLicenciranja="2026-02-09" VezanoNa="" VezanoNaAng="" Besedilo="" BesediloAng=""></Licenca>
  </Licence>
  <EmbargoDo></EmbargoDo>
  <VrstaEmbarga ID="1" Naziv="Takojšnja javna objava" OpenAIREDostop="openAccess"></VrstaEmbarga>
  <Osebe>
    <Oseba ID="99184" Ime="Mitko" Priimek="Nikov" AltIme="" VlogaID="70" VlogaNaziv="Avtor" ConorID="435830531" Afiliacija="" ArrsID="" ORCID=""></Oseba>
    <Oseba ID="12994" Ime="Domen" Priimek="Mongus" AltIme="Domen Mangus" VlogaID="991" VlogaNaziv="Mentor" ConorID="138887779" Afiliacija="" ArrsID="29243" ORCID=""></Oseba>
    <Oseba ID="79215" Ime="Mitja" Priimek="Žalik" AltIme="" VlogaID="994" VlogaNaziv="Komentor" ConorID="327251043" Afiliacija="" ArrsID="57410" ORCID=""></Oseba>
  </Osebe>
  <Identifikatorji>
    <Identifikator ID="4" Sifra="UDK" Naziv="UDK" URL="">004.4&#039;232(043.2)</Identifikator>
    <Identifikator ID="3" Sifra="CobissID" Naziv="COBISS_ID" URL="https://plus.cobiss.net/cobiss/si/sl/bib/270487555">270487555</Identifikator>
  </Identifikatorji>
  <Relacije>
  </Relacije>
  <VerzijeGradiva>
  </VerzijeGradiva>
  <Datoteke>
    <Datoteka ID="203172" DatotekaNRID="14604648" NamenDatotekeID="2" NamenDatoteke="Predstavitvena datoteka" FormatDatotekeID="2" FormatDatoteke=".pdf" MIME="application/pdf" IkonaFormata="pdf.gif" IkonaFormataPolniUrl="https://dk.um.si/teme/dkumDev2/img/fileTypes/pdf.gif" VelikostDatoteke="59447560" VelikostDatotekeKratko="56,69 MB" DatumVstavljanja="2026-02-10 13:04:06" JeZbrisana="false" JeJavnoVidna="true" JeIndeksirana="true" JeVidno="true" VidnoOd="01.01.1970" Zaporedje="0">
      <Naziv>MAG_Nikov_Mitko_2026.pdf</Naziv>
      <OrgNaziv>MAG_Nikov_Mitko_2026.pdf</OrgNaziv>
      <URL></URL>
      <Opis></Opis>
      <OpisTujJezik></OpisTujJezik>
      <UrlObdelave></UrlObdelave>
      <FrekvencaAzuriranjaID>1</FrekvencaAzuriranjaID>
      <Verzija></Verzija>
      <MD5>1B9321E6F42C85C5CB7B7A7E7EDB494A</MD5>
      <SHA256>cd494d6e7489d333f1e3a0a0cc8503ccdc88bac0a4eda730f0a5764a6bf094c8</SHA256>
      <UUID>993e1f2f-0678-11f1-b41d-00155d00019a</UUID>
      <PID></PID>
      <PrenosPolniUrl>https://dk.um.si/Dokument.php?lang=slv&amp;id=203172</PrenosPolniUrl>
      <Vsebine>
        <Vsebina TipVsebine="GoloBesedilo" JezikID="1033" Oznaka="" Dolzina="121354"></Vsebina>
      </Vsebine>
    </Datoteka>
  </Datoteke>
  <Organizacije>
    <Organizacija OrganizacijaID="3" Kratica="FERI" ZavodEvsID="0000080" Logo="FERI_logo.gif" LogoPolniUrl="https://dk.um.si/teme/dkumDev2/img/logo/FERI_logo.gif">Fakulteta za elektrotehniko, računalništvo in informatiko</Organizacija>
  </Organizacije>
  <OrganizacijeVira>
  </OrganizacijeVira>
  <MetodeZbiranjaPodatkov>
  </MetodeZbiranjaPodatkov>
  <TipologijaDela ID="2.09" Koda="2.09" Naziv="Magistrsko delo" SchemaOrg="Thesis"></TipologijaDela>
  <Ostalo>
    <StIrodsDatotek>0</StIrodsDatotek>
    <StDatotekPodTrajnimEmbargom>0</StDatotekPodTrajnimEmbargom>
    <StDatotekZOmejenimDostopom>0</StDatotekZOmejenimDostopom>
  </Ostalo>
</Gradivo>
