Original title:
Vyvažování zátěže v systémech pro vyhodnocování programátorských úloh
Translated title:
Load Balancing in Evaluation Systems for Programming Assignments
Authors:
Buchar, Jan ; Kruliš, Martin (advisor) ; Tůma, Petr (referee) Document type: Master’s theses
Year:
2020
Language:
eng Abstract:
[eng][cze] 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...Systé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...
Keywords:
Cloud computing; Load balancing; Sandboxing; Scheduling; Virtualization; Cloud computing; Plánování; Sandboxing; Virtualizace; Vyvažování zátěže
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/119061