EasyPAP: A framework for learning parallel programming

•The EasyPAP environment allows students to really focus on parallelism while developing OpenMP, OpenCL or MPI kernels.•Interactive display of increasingly optimized variants of a 2D kernel help to popularize HPC.•Linking CPUs and image tiles in monitoring windows allow to better understand scheduli...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Journal of parallel and distributed computing Jg. 158; S. 94 - 114
Hauptverfasser: Lasserre, Alice, Namyst, Raymond, Wacrenier, Pierre-André
Format: Journal Article
Sprache:Englisch
Veröffentlicht: Elsevier Inc 01.12.2021
Elsevier
Schlagworte:
ISSN:0743-7315, 1096-0848
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:•The EasyPAP environment allows students to really focus on parallelism while developing OpenMP, OpenCL or MPI kernels.•Interactive display of increasingly optimized variants of a 2D kernel help to popularize HPC.•Linking CPUs and image tiles in monitoring windows allow to better understand scheduling policies.•Linking tasks and image tiles when visualizing port mortem execution traces help to diagnose parallel efficiency issues. This paper presents EasyPAP, an easy-to-use programming environment designed to help students to learn parallel programming. EasyPAP features a wide range of 2D computation kernels that the students are invited to parallelize using Pthreads, OpenMP, OpenCL or MPI. Execution of kernels can be interactively visualized, and powerful monitoring tools allow students to observe both the scheduling of computations and the assignment of 2D tiles to threads/processes. By focusing on algorithms and data distribution, students can experiment with diverse code variants and tune multiple parameters, resulting in richer problem exploration and faster progress towards efficient solutions. We present selected lab assignments which illustrate how EasyPAP improves the way students explore parallel programming.
ISSN:0743-7315
1096-0848
DOI:10.1016/j.jpdc.2021.07.018