SAUCE: A web application for interactive teaching and learning of parallel programming

Prevalent hardware trends towards parallel architectures and algorithms create a growing demand for graduate students familiar with the programming of concurrent software. However, learning parallel programming is challenging due to complex communication and memory access patterns as well as the avo...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Journal of parallel and distributed computing Ročník 105; s. 163 - 173
Hlavní autoři: Hundt, Christian, Schlarb, Moritz, Schmidt, Bertil
Médium: Journal Article
Jazyk:angličtina
Vydáno: Elsevier Inc 01.07.2017
Témata:
ISSN:0743-7315, 1096-0848
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Popis
Shrnutí:Prevalent hardware trends towards parallel architectures and algorithms create a growing demand for graduate students familiar with the programming of concurrent software. However, learning parallel programming is challenging due to complex communication and memory access patterns as well as the avoidance of common pitfalls such as dead-locks and race conditions. Hence, the learning process has to be supported by adequate software solutions in order to enable future computer scientists and engineers to write robust and efficient code. This paper discusses a selection of well-known parallel algorithms based on C++11 threads, OpenMP, MPI, and CUDA that can be interactively embedded in an HPC or parallel computing lecture using a unified framework for the automated evaluation of source code—namely the “System for AUtomated Code Evaluation” (SAUCE). SAUCE is free software licensed under AGPL-3.0 and can be downloaded at https://github.com/moschlar/SAUCE free of charge. •A web application for the automated assessment of parallel programs is introduced.•Interactive programming exercises for the teaching of parallel programming are discussed.•C++11 multi-threading, OpenMP, MPI and CUDA support are demonstrated.•Black box testing can be used to validate code in terms of correctness and performance.•Short feedback loops increase the quality of submitted source code.
ISSN:0743-7315
1096-0848
DOI:10.1016/j.jpdc.2016.12.028