dc.contributor.advisor | Bureš, Tomáš | |
dc.creator | Kubát, Petr | |
dc.date.accessioned | 2017-09-27T09:39:36Z | |
dc.date.available | 2017-09-27T09:39:36Z | |
dc.date.issued | 2017 | |
dc.identifier.uri | http://hdl.handle.net/20.500.11956/90479 | |
dc.description.abstract | Dynamic adaptivity of a computer system is its ability to modify the behavior according to the environment in which it is executed. It allows the system to achieve better performance, but usually requires specialized architecture and brings more complexity. The thesis presents an analysis and design of a framework that allows simple and fluent performance-based adaptive development at the level of functions and methods. It closely examines the API requirements and possibilities of integrating such a framework into the Scala programming language using its advanced syntactical constructs. On theoretical level, it deals with the problem of selecting the most appropriate function to execute with given input based on measurements of previous executions. In the provided framework implementation, the main stress is laid on modularity and extensibility, as many possible future extensions are outlined. The solution is evaluated on a variety of development scenarios, ranging from input adaptation of algorithms to environment adaptations of complex distributed computations in Apache Spark. | en_US |
dc.description.abstract | Dynamická adaptivita počítačových systémů je jejich schopnost měnit své chování v závislosti na prostředí, v němž běží. Systém díky ní může dosáhnout lepšího výkonu, ale většinou je třeba přizpůsobit jeho architekturu, což komplikuje řešení. V rámci diplomové práce předkládáme analýzu a návrh frameworku pro jednoduchý a přímočarý vývoj zahrnující výkonnostní adaptivitu na úrovni funkcí a metod. Zkoumáme požadavky na rozhraní takového frameworku a možnost jeho integrace do prostředí programovacího jazyka Scala za použití pokročilých jazykových prostředků, jež nabízí. Na teoretické úrovni dále probíráme problém výběru nejvhodnější funkce pro použití s daným vstupem na základě měření výkonu předchozích běhů. Práce dále obsahuje implementaci tohoto frameworku, u níž byl kladen důraz na modularitu a snadnou rozšiřitelnost, neboť v práci je nastíněno mnoho potenciálních možností vylepšení. Řešení je vyhodnoceno prostřednictvím pestré škály scénářů, od algoritmů adaptujících se podle vstupních dat až po adaptace na běhové prostředí při distribuovaných výpočtech v systému Apache Spark. | cs_CZ |
dc.language | English | cs_CZ |
dc.language.iso | en_US | |
dc.publisher | Univerzita Karlova, Matematicko-fyzikální fakulta | cs_CZ |
dc.subject | adaptive systems | en_US |
dc.subject | performance optimization | en_US |
dc.subject | run time prediction | en_US |
dc.subject | adaptivní systémy | cs_CZ |
dc.subject | optimalizace výkonu | cs_CZ |
dc.subject | predikce běhu | cs_CZ |
dc.title | Performance based adaptation of Scala programs | en_US |
dc.type | diplomová práce | cs_CZ |
dcterms.created | 2017 | |
dcterms.dateAccepted | 2017-09-06 | |
dc.description.department | Department of Distributed and Dependable Systems | en_US |
dc.description.department | Katedra distribuovaných a spolehlivých systémů | cs_CZ |
dc.description.faculty | Faculty of Mathematics and Physics | en_US |
dc.description.faculty | Matematicko-fyzikální fakulta | cs_CZ |
dc.identifier.repId | 189772 | |
dc.title.translated | Adaptace programů ve Scale zaměřená na výkon | cs_CZ |
dc.contributor.referee | Horký, Vojtěch | |
thesis.degree.name | Mgr. | |
thesis.degree.level | navazující magisterské | cs_CZ |
thesis.degree.discipline | Software Systems | en_US |
thesis.degree.discipline | Softwarové systémy | cs_CZ |
thesis.degree.program | Informatika | cs_CZ |
thesis.degree.program | Computer Science | en_US |
uk.thesis.type | diplomová práce | cs_CZ |
uk.taxonomy.organization-cs | Matematicko-fyzikální fakulta::Katedra distribuovaných a spolehlivých systémů | cs_CZ |
uk.taxonomy.organization-en | Faculty of Mathematics and Physics::Department of Distributed and Dependable Systems | en_US |
uk.faculty-name.cs | Matematicko-fyzikální fakulta | cs_CZ |
uk.faculty-name.en | Faculty of Mathematics and Physics | en_US |
uk.faculty-abbr.cs | MFF | cs_CZ |
uk.degree-discipline.cs | Softwarové systémy | cs_CZ |
uk.degree-discipline.en | Software Systems | en_US |
uk.degree-program.cs | Informatika | cs_CZ |
uk.degree-program.en | Computer Science | en_US |
thesis.grade.cs | Výborně | cs_CZ |
thesis.grade.en | Excellent | en_US |
uk.abstract.cs | Dynamická adaptivita počítačových systémů je jejich schopnost měnit své chování v závislosti na prostředí, v němž běží. Systém díky ní může dosáhnout lepšího výkonu, ale většinou je třeba přizpůsobit jeho architekturu, což komplikuje řešení. V rámci diplomové práce předkládáme analýzu a návrh frameworku pro jednoduchý a přímočarý vývoj zahrnující výkonnostní adaptivitu na úrovni funkcí a metod. Zkoumáme požadavky na rozhraní takového frameworku a možnost jeho integrace do prostředí programovacího jazyka Scala za použití pokročilých jazykových prostředků, jež nabízí. Na teoretické úrovni dále probíráme problém výběru nejvhodnější funkce pro použití s daným vstupem na základě měření výkonu předchozích běhů. Práce dále obsahuje implementaci tohoto frameworku, u níž byl kladen důraz na modularitu a snadnou rozšiřitelnost, neboť v práci je nastíněno mnoho potenciálních možností vylepšení. Řešení je vyhodnoceno prostřednictvím pestré škály scénářů, od algoritmů adaptujících se podle vstupních dat až po adaptace na běhové prostředí při distribuovaných výpočtech v systému Apache Spark. | cs_CZ |
uk.abstract.en | Dynamic adaptivity of a computer system is its ability to modify the behavior according to the environment in which it is executed. It allows the system to achieve better performance, but usually requires specialized architecture and brings more complexity. The thesis presents an analysis and design of a framework that allows simple and fluent performance-based adaptive development at the level of functions and methods. It closely examines the API requirements and possibilities of integrating such a framework into the Scala programming language using its advanced syntactical constructs. On theoretical level, it deals with the problem of selecting the most appropriate function to execute with given input based on measurements of previous executions. In the provided framework implementation, the main stress is laid on modularity and extensibility, as many possible future extensions are outlined. The solution is evaluated on a variety of development scenarios, ranging from input adaptation of algorithms to environment adaptations of complex distributed computations in Apache Spark. | en_US |
uk.file-availability | V | |
uk.publication.place | Praha | cs_CZ |
uk.grantor | Univerzita Karlova, Matematicko-fyzikální fakulta, Katedra distribuovaných a spolehlivých systémů | cs_CZ |