π€ AI Summary
This work addresses the challenge undergraduate students face in deeply grasping core concepts of parallel and distributed computing (PDC) due to limited access to authentic high-performance computing (HPC) environments. To bridge this gap, the study introduces, for the first time in undergraduate instruction, systematic hands-on engagement with the real-world supercomputing platform HiPerGator. Students undertook structured assignments implementing and optimizing matrix multiplication in both Python and C, leveraging POSIX threads and OpenMP, while navigating job scheduling, core allocation, and performance tuning. Multi-year course evaluations across three consecutive offerings demonstrate that this approach significantly enhances studentsβ conceptual understanding of parallelism and multithreading, as well as their practical implementation skills, thereby affirming the pedagogical efficacy and innovative value of integrating genuine HPC infrastructure into undergraduate PDC education.
π Abstract
Parallel and Distributed Computing (PDC) is a critical yet conceptually challenging area of the undergraduate computer science curriculum. While students often encounter these concepts in theory, few gain exposure to experience in real high-performance computing (HPC) environments. Research shows that when students are engaged in project-based learning they retain knowledge more effectively. They also develop a deeper understanding of concepts taught in the classroom. This paper presents a practical assignment in which students engage directly with the University of Florida's HiPerGator supercomputer to implement and benchmark matrix multiplication using Python and C (via POSIX threads and OpenMP). Students navigate batch scheduling, core allocation, and performance tuning, experiences that are rarely accessible at the undergraduate level. We describe the assignment in detail and provide a three-year evaluation across multiple course offerings, highlighting how structured access to real HPC infrastructure can deepen student understanding of parallelism and multithreading.