Original title:
Adaptace programů ve Scale zaměřená na výkon
Translated title:
Performance based adaptation of Scala programs
Authors:
Kubát, Petr ; Bureš, Tomáš (advisor) ; Horký, Vojtěch (referee) Document type: Master’s theses
Year:
2017
Language:
eng Abstract:
[eng][cze] 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.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.
Keywords:
adaptive systems; performance optimization; run time prediction; adaptivní systémy; optimalizace výkonu; predikce běhu
Institution: Charles University Faculties (theses)
(web)
Document availability information: Available in the Charles University Digital Repository. Original record: http://hdl.handle.net/20.500.11956/90479