Název:
Adaptace programů ve Scale zaměřená na výkon
Překlad názvu:
Performance based adaptation of Scala programs
Autoři:
Kubát, Petr ; Bureš, Tomáš (vedoucí práce) ; Horký, Vojtěch (oponent) Typ dokumentu: Diplomové práce
Rok:
2017
Jazyk:
eng
Abstrakt: [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.
Klíčová slova:
adaptivní systémy; optimalizace výkonu; predikce běhu; adaptive systems; performance optimization; run time prediction