DIGITAL LIBRARY
SAPPHIRE: A TOOL FOR TEACHING PARALLEL PROGRAMMING IN HUNDREDS OF DIFFERENT WAYS
Texas State University (UNITED STATES)
About this paper:
Appears in: EDULEARN24 Proceedings
Publication year: 2024
Pages: 4579-4588
ISBN: 978-84-09-62938-1
ISSN: 2340-1117
doi: 10.21125/edulearn.2024.1136
Conference name: 16th International Conference on Education and New Learning Technologies
Dates: 1-3 July, 2024
Location: Palma, Spain
Abstract:
Parallel programming has become an essential module in computer science education. However, most courses and textbooks only provide limited coverage of how to parallelize modern workloads. To fill this gap, we created Sapphire, a suite of seven graph analytics algorithms that we parallelized using hundreds of different styles. The suite includes over 2000 CUDA, OpenMP, and C++ codes as well as diverse inputs to elicit various behaviors from these parallel programs. Moreover, for each code, it contains annotated versions with intentionally planted bugs.

Sapphire enables educators to systematically teach how to parallelize graph algorithms in different ways, how to track down and eliminate common parallelization bugs, and to study the effects that different implementation styles and inputs have on performance. It also makes it easy to create a large number of demos, hands-on exercises, and assignments. Thus, Sapphire can help students gain a deep understanding of how to develop efficient parallel programs on the example of interesting and relevant workloads.
Keywords:
Massively parallel algorithms, parallel programming languages, graph analytics.