Performance based adaptation of Scala programs
Název práce v češtině: | Adaptace programů ve Scale zaměřená na výkon |
---|---|
Název v anglickém jazyce: | Performance based adaptation of Scala programs |
Klíčová slova: | adaptivní systémy, optimalizace výkonu, predikce běhu |
Klíčová slova anglicky: | adaptive systems, performance optimization, run time prediction |
Akademický rok vypsání: | 2016/2017 |
Typ práce: | diplomová práce |
Jazyk práce: | angličtina |
Ústav: | Katedra distribuovaných a spolehlivých systémů (32-KDSS) |
Vedoucí / školitel: | prof. RNDr. Tomáš Bureš, Ph.D. |
Řešitel: | skrytý - zadáno a potvrzeno stud. odd. |
Datum přihlášení: | 03.04.2017 |
Datum zadání: | 10.04.2017 |
Datum potvrzení stud. oddělením: | 27.04.2017 |
Datum a čas obhajoby: | 06.09.2017 10:30 |
Datum odevzdání elektronické podoby: | 21.07.2017 |
Datum odevzdání tištěné podoby: | 21.07.2017 |
Datum proběhlé obhajoby: | 06.09.2017 |
Oponenti: | Mgr. Vojtěch Horký, Ph.D. |
Zásady pro vypracování |
Developers often come across situations where it is possible to implement the same functionality (algorithms, database queries, data manipulation, etc.) in multiple different ways. There can be a significant difference in the performance of these implementations and using an inappropriate one can have a negative impact on the application. In order to avoid this, the developer currently has to test the performance manually, select the best option and then use it in the program. The performance usually depends on the execution context (input data, configuration, etc.), so there might not be a single solution that would be the best in every case.
The goal of the thesis is to design and implement a Scala programming language framework, which would allow the developer to easily include more implementations of the same function in the program. The runtime support of the framework would then track the usages of the function, choose the implementation according to the context and measure performance, iteratively improving itself. The framework will be tested on real cases, e.g. the Apache Spark cluster computing system applications. |
Seznam odborné literatury |
[1] BULEJ, Lubomír, et al. Capturing performance assumptions using stochastic performance logic. In: Proceedings of the 3rd ACM/SPEC International Conference on Performance Engineering. ACM, 2012. p. 311-322.
[2] HORKÝ, Vojtěch, et al. Performance regression unit testing: a case study. In: European Workshop on Performance Engineering. Springer Berlin Heidelberg, 2013. p. 149-163. [3] MAREK, Lukáš, et al. Introduction to dynamic program analysis with DiSL. Science of Computer Programming, 2015, 98: 100-115. [4] MAREK, Lukáš, et al. Java bytecode instrumentation made easy: The disl framework for dynamic program analysis. In: Asian Symposium on Programming Languages and Systems. Springer Berlin Heidelberg, 2012. p. 256-263. [5] ZHANG, Zhuoyao; CHERKASOVA, Ludmila; LOO, Boon Thau. AutoTune: Optimizing Execution Concurrency and Resource Usage in MapReduce Workflows. In: ICAC. 2013. p. 175-181. [6] Apache Spark documentation, http://spark.apache.org/docs/latest/index.htmlscala [7] Scala language documentation, https://www.scala-lang.org/documentation/ |