Diplomové práce - 18101http://hdl.handle.net/10467/35722024-03-29T12:37:04Z2024-03-29T12:37:04ZParalelní násobení řídkých maticLukáš Simulíkhttp://hdl.handle.net/10467/1137502024-02-09T23:51:51Z2024-02-09T00:00:00ZParalelní násobení řídkých matic; Parallel multiplication of sparse matrices
Lukáš Simulík
Práce se zabývá paralelním násobením řídkých matic a obsahuje analýzu a porovnání výkonu vlastního implementovaného algoritmu v OpenMP s existujícími algoritmy. Byly popsány již existující algoritmy a jejich postupy a optimalizace, díky kterým dokáží dosáhnout svých časů. Tyto myšlenky byly použity ve vlastní implementaci. Pro porovnání byla provedena sada měření, při kterých byly testovány různé matice ze souboru matic SuiteSparse. Naměřené výsledky byly poté analyzovány a porovnány, aby se zjistila relativní efektivita implementovaného algoritmu v porovnání s existujícími algoritmy.; The work focuses on parallel sparse matrix multiplication and includes analysis and comparison of performance between a custom implemented algorithm in OpenMP and existing algorithms. The existing algorithms and their approaches and optimizations, which enable them to achieve their respective times, have been described. These ideas were utilized in the custom implementation. For comparison, a set of measurements was performed, testing various matrices from the SuiteSparse matrix collection. The obtained results were then analyzed and compared to determine the relative efficiency of the implemented algorithm compared to the existing algorithms.
2024-02-09T00:00:00Zx86-64 nativní backend pro TinyCMichal Vlasákhttp://hdl.handle.net/10467/1111182023-08-24T22:52:21Z2023-08-24T00:00:00Zx86-64 nativní backend pro TinyC; x86-64 native backend for TinyC
Michal Vlasák
Tato práce popisuje backend překladače, který kompiluje TinyC mezireprezentaci do nativních x86-64 instrukcí. Cílem bylo vytvořit překladač, který by ukázal složitosti spojené s architekturou x86-64, zvláště pak ve srovnání s architekturou Tiny86, kterou používají studenti předmětu NI-GEN. V teoretické části je dán zvláštní zřetel na historii architektury x86-64 a pravou podstatu jejích omezení. Je vyhodnocen dosavadní výzkum v oblasti backendů překladačů a to s přihlédnutím k možnostem architektury x86-64. Práce prezentuje návrh x86-64 TinyC backendu. Ten je založen na výběru instrukcí extenzivní peephole optimalizací a na alokaci registrů barvením grafů. Implementace samotná je důkladně rozebrána a mnoho praktických detailů je zváženo a vysvětleno. Přeložené programy mohou buď využít systémový runtime jazyka C, nebo na Linuxu mohou být rozšířeny o vlastní minimalistický runtime dovolující programům běžet bez externích závislostí. Text této práce a implementace jsou volně dostupné a mohou být použity nejen studenty předmětu NI-GEN.; This thesis describes a compiler back end compiling TinyC IR to x86-64 native machine code. The goal was to create a compiler that would showcase additional difficulties imposed by the x86-64 architecture, especially compared to the simplified Tiny86 architecture targeted by students in the NI-GEN course. In the theoretical part a close attention is paid to x86-64's history and the true nature of its limitations. Existing compiler back end research is surveyed and evaluated with respect to x86-64's capabilities. A design for a x86-64 TinyC back end is presented. It is based on instruction selection by extensive peephole optimization and graph coloring register allocation. The implementation itself is presented thoroughly and many practical details are considered and explained. The compiled programs are either able to use the system C runtime, or on Linux can be bundled with a custom minimalistic runtime allowing the programs to run without any dependencies. The text of this thesis and the implementation are freely available, and can be used not only by NI-GEN students.
2023-08-24T00:00:00ZParametrizovaná složitost problému Network MicroaggregationJan Pokornýhttp://hdl.handle.net/10467/1111042023-08-24T22:51:45Z2023-08-24T00:00:00ZParametrizovaná složitost problému Network Microaggregation; The Parameterized Complexity of Network Microaggregation
Jan Pokorný
Mikroagregace je technika sloužící k rozdělení dat do shluků dle zadaných velikostních a vzdálenostní požadavků. V této práci se zabýváme případem, kdy data tvoří sít a dvěma variantami, zda shluky jsou souvislé nebo nejsou. Problém zkoumáme z hlediska kombinací parametrů danými problémem (maximální velikost shluků, maximální vzdálenost) a strukturálních parametrů (velikost vrcholového pokrytí, stromové šířky, stromové hloubky). Představujeme několik algoritmů, které ukazují, že problém lze efektivně řešit pomocí parametrizované složitosti. Jmenovitě představujeme pro souvislou verzi problému dynamické programování na stromovém rozkladu. Dále při parametrizaci pomocí velikosti vrcholového pokrytí a maximální vzdálenosti do centra ukazujeme FPT algoritmus na bázi celočíselného programování pro obě verze problému. Na druhé straně ukazujeme že problém je W[1] těžký při parametrizaci stromovou hloubkou a maximální vzdáleností v rámci souvislých shluků. Pokud jsou povoleny nesouvislé shluky, je problém W[1] těžký při parametrizaci velikostí vrcholového pokrytí. Nakonec ukazujeme, že problém Equitable Connected Partition je W[1] těžký vzhledem k parametru stromové hloubky.; Microaggregation is a classical statistical disclosure control technique that requires the input data to be partitioned into clusters while adhering to specified size and distance constraints. We explore the problem when the data points are embedded into a network that specifies the distances. Additionally, we consider the case when the clusters are connected. We use a combination of input parameters (maximum cluster size, maximum distance) and structural parameters (vertex cover, treewidth, treedepth) to achieve or rule out tractability in various settings. Namely, we propose a dynamic programming algorithm for the connected version. Further, we show FPT algorithms parameterized by vertex cover and maximum distance based on integer linear programming for both versions of the problem. On the other hand, we show that the connected version is W[1]-hard with respect to treewidth and maximum distance. For disconnected clusters, the problem is also W[1]-hard when parameterized by the vertex cover number. Lastly, we establish W[1]-hardness of the problem Equitable Connected Partition when parameterized by treedepth.
2023-08-24T00:00:00ZVylepšení neurálních celulárních automatů se zapojením známé fyzikální dynamikyFrantišek Koutenskýhttp://hdl.handle.net/10467/1110992023-08-24T22:51:38Z2023-08-24T00:00:00ZVylepšení neurálních celulárních automatů se zapojením známé fyzikální dynamiky; Improving neural cellular automata by incorporating physical dynamics
František Koutenský
Tato práce představuje nový Neurální celulární automat se zapojením známé fyzikální dynamiky (PINCA), který spojuje neurální celulární automaty s integrací fyzikální dynamiky. Cílem modelu PINCA je naučit se diferenciální operátory přes učící konvoluční filtry a odhalit řídící rovnice daného procesu i z velmi malých datasetů. Funkce modelu je demonstrována na procesu vývoje vzorů na srsti leoparda, kde byla odhalena unikátní řídící reakčně-difuzní rovnice. Práce se dále zabývá buněčnou specializací skrze zkoumání chování skrytých kanálů modelu Growing neural cellular automata. Hlavním obsahem této práce je podrobná rešerše literatury a vývoj modelu PINCA. Práce spojující umělou inteligenci a fyziku nabízí nové nástroje pro modelování a chápání komplexních systémů.; This thesis presents the Physically Informed Neural Cellular Automaton (PINCA) model, a novel approach combining Neural Cellular Automata with the integration of physical dynamics. PINCA seeks to uncover governing equations from minimal datasets by learning differential operators through convolutional filters. A case study involving leopard coat patterns demonstrates the model's efficacy in deriving a unique reaction-diffusion system. Additionally, an exploration into the hidden states of Growing Neural Cellular Automata aims to shed light on cell specialization phenomena. The thesis comprises a literature review and the development and application of the PINCA model. This work bridges artificial intelligence and physics, offering new tools for modeling and understanding complex systems.
2023-08-24T00:00:00Z