Load Balancing in Evaluation Systems for Programming Assignments
Vyvažování zátěže v systémech pro vyhodnocování programátorských úloh
diploma thesis (DEFENDED)

View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/119061Identifiers
Study Information System: 189198
Collections
- Kvalifikační práce [10150]
Author
Advisor
Referee
Tůma, Petr
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software Systems
Department
Department of Software Engineering
Date of defense
1. 7. 2020
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Very good
Keywords (Czech)
Vyvažování zátěže, Plánování, Sandboxing, Virtualizace, Cloud computingKeywords (English)
Load balancing, Scheduling, Sandboxing, Virtualization, Cloud computingSystémy pro automatické vyhodnocování úloh jsou cenným nástrojem pro učitele programování i pro jejich studenty. Cílem této práce je prozkoumat možnost nasazení takovýchto systémů v rozsáhlém distribuovaném prostředí a vyřešit problémy, které při takovémto nasazení mohou vyvstat. Velká část řešených požadavků pochází ze zkušenosti se systémem ReCodEx - vyhodnocovacím systémem vyvinutým na katedře vedoucího. Moderní serverové procesory s mnoha jádry poskytují velký výkon, který lze využít i na vyhodnocování programátorských úloh. Souběžná měření se ale mohou navzájem ovlivňovat. To může způsobit nestabilní výsledky, čímž je ovlivněna spravedlivost hodnocení studentských řešení. Technologie pro izolaci (sandboxing) mohou způsobovat podobné problémy. V naší práci měříme oba tyto vlivy a na základě výsledků určujeme, do jaké míry lze vícejádrové procesory skutečně využít. Dále se zabýváme efektivním rozdělováním práce mezi více vyhodnocovacími stroji, což je úloha, která doplňuje problém využití vícejádrových strojů. Práce obsahuje rešerši plánovacích algoritmů a popis experimentu, který porovnává jejich výkon. Následně se věnujeme možnosti využití kontejnerových technologií ke zjednodušení nasazování softwaru nutného pro vyhodnocování. Tím se zjednodušuje jak administrace, tak složení množiny vyhodnocovacích...
Systems for automated evaluation of assignments are a valuable aid for both teachers of programming courses and their students. The objective of this thesis is to examine the possibilities of deploying such systems in a large-scale distributed environment and the challenges of such endeavors. A sizable part of the requirements comes from experience with ReCodEx - an assignment evaluation system developed at the department of the supervisor. Modern server multi-core processors provide considerable computing power that can be used for assignment evaluation. However, parallel measurements can interfere with each other. This causes unstable results, which detriments the fairness of grading. Isolation (sandboxing) technologies can cause similar effects. We measure both of these influences and use the results to determine to what degree can multi-core processors be exploited. The problem of efficient distribution of work between multiple evaluation workers is complementary to that of utilizing multi-core machines. We survey scheduling algorithms and design an experiment to compare their performance. Additionally, we examine the possibility of leveraging container technologies to simplify the deployment of software required for evaluation. This leads to both a smaller administration overhead and a less complex...