Thesis (Selection of subject)Thesis (Selection of subject)(version: 308)
Assignment details
Performance based adaptation of Scala programs
Thesis title in Czech: Adaptace programů ve Scale zaměřená na výkon
Thesis title in English: Performance based adaptation of Scala programs
Key words: adaptivní systémy, optimalizace výkonu, predikce běhu
English key words: adaptive systems, performance optimization, run time prediction
Academic year of topic announcement: 2016/2017
Type of assignment: diploma thesis
Thesis language: angličtina
Department: Department of Distributed and Dependable Systems (32-KDSS)
Supervisor: prof. RNDr. Tomáš Bureš, Ph.D.
Author: hidden - assigned and confirmed by the Study Dept.
Date of registration: 03.04.2017
Date of assignment: 10.04.2017
Confirmed by Study dept. on: 27.04.2017
Date and time of defence: 06.09.2017 10:30
Date of electronic submission:21.07.2017
Date of submission of printed version:21.07.2017
Date of proceeded defence: 06.09.2017
Reviewers: Mgr. Vojtěch Horký, Ph.D.
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.
[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,
[7] Scala language documentation,
Charles University | Information system of Charles University |