Název:
Webové prostředí pro výuku paralelního programování
Překlad názvu:
Web Platform for Parallel Programming Tutorials
Autoři:
Buzek, Emanuel ; Kruliš, Martin (vedoucí práce) ; Yaghob, Jakub (oponent) Typ dokumentu: Diplomové práce
Rok:
2017
Jazyk:
eng
Abstrakt: [eng][cze] This thesis presents a novel approach to introducing programmers into parallel and distributed computing. The main objective of this work is to develop an online coding environment which contains tutorials in form of simple parallel programming tasks. The online application simulates and visualizes multiple agents which cooperate on a task in virtual environment. These agents are programmed in a custom procedural language similar to JavaScript. A significant part of this thesis focuses on the design of this language. The client-side compiler is built using tools similar to Bison and Flex. The parallel simulator supports different scheduling algorithms including lock- step mode simulating computation on a GPU. An important aspect of the platform is extensibility; therefore, the tutorials and the packages for the programming language can be added as plug-ins. The final part of this thesis is dedicated to the implementation of sample packages and tutorials which demonstrate that the key goals of this thesis have been accomplished.Tato diplomová práce prezentuje originální způsob pro výuku programování v paralelním a distribuovaném prostředí. Hlavním cílem práce je vytvoření online platformy pro programování, která bude obsahovat tutoriály ve formě jednoduchých úloh z oblasti paralelismu. Webová aplikace simuluje a vizualizuje více agentů, kteří musí kolaborativně vyřešit daný problém. Agenti jsou programováni v procedurálním jazyce, který vychází z JavaScriptu. Významná část práce se zabývá návrhem tohoto jazyka. Kompilátor jazyka byl vytvořen pomocí nástroje, který je obdobou Bisonu a Flexu. Implementovaný paralelní simulátor podporuje několik plánovacích algoritmů včetně lock-step módu, který simuluje běh programů na grafických kartách. Důležitá vlastnost platformy je rozšiřitelnost, proto jsou tutoriály a balíčky navrženy jako plug- iny. Závěrečná část práce je věnována implementaci ukázkových balíčků a tutoriálů, které demonstrují, že hlavního cíle práce se podařilo dosáhnout.
Klíčová slova:
kompilátory; konkurentní; paralelní; programování; tutoriály; compilers; concurrent; parallel; programming; tutorial