Letting future programmers experience performance-related tasks

•Presentation of fine tuned assignments for HPC and parallel programming courses.•All assignments tested on students in three interconnected courses.•Covering vectorization, caches, multicore CPUs, GPUs, and multi-node problems.•Introducing 5 widely used technologies (TBB, OpenMP, CUDA, OpenMPI, and...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Journal of parallel and distributed computing Ročník 155; s. 74 - 86
Hlavní autoři: Bednárek, David, Kruliš, Martin, Yaghob, Jakub
Médium: Journal Article
Jazyk:angličtina
Vydáno: Elsevier Inc 01.09.2021
Témata:
ISSN:0743-7315
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í:•Presentation of fine tuned assignments for HPC and parallel programming courses.•All assignments tested on students in three interconnected courses.•Covering vectorization, caches, multicore CPUs, GPUs, and multi-node problems.•Introducing 5 widely used technologies (TBB, OpenMP, CUDA, OpenMPI, and Spark). Programming courses usually focus on software-engineering problems like software decomposition and code maintenance. While computer-science lessons emphasize algorithm complexity, technological problems are usually neglected although they may significantly affect the performance in terms of wall time. As the technological problems are best explained by hands-on experience, we present a set of homework assignments focused on a range of technologies from instruction-level parallelism to GPU programming to cluster computing. These assignments are a product of a decade of development and testing on live subjects – the students of three performance-related software courses at the Faculty of Mathematics and Physics of the Charles University in Prague.
ISSN:0743-7315
DOI:10.1016/j.jpdc.2021.04.014