Teaching Heterogeneous and Parallel Computing with Google Colab and Raspberry Pi Clusters

Zhiguang Xu · 2023

In this paper, we describe the process and evaluation results of teaching Heterogeneous and Parallel Computing with Google Colab and Raspberry Pi Clusters in a senior elective course in Spring 2023. The course began with an introduction to the fundamentals of designing and building parallel programs. Then, while the whole class went on to learn and practice CUDA on Google Colab for around five and half weeks, in parallel, a team of two students spearheaded a pilot project as their undergraduate research project to build, configure, and test a cluster of four Raspberry Pi’s. Then the rest of the class was divided into seven teams and spent one and half weeks to build their own Raspberry Pi clusters using the instructions and tutorials developed through the pilot project. Now that each team had a Raspberry Pi cluster fully functional and accessible through WiFi, in the next seven weeks, the class went on to learn OpenMP and MPI and developed shared-memory and message-passing based programs on various scales. In this paper, students’ performance on the course labs and assignments, their end-of-semester evaluations, and three anonymous surveys were collected as data to produce an analysis of the course. The lessons we learned from this offering of the course are: 1) Google Colab is a great and cost-saving platform for students to work on real-world alike parallel programs with modern CPUs and GPUs; 2) Students benefit substantially from the hands-on experience of building and configuring a physical cluster of Raspberry Pi’s; 3) Heterogeneous and Parallel Computing has a positive impact on student learning and gives them a new perspective on how to organize and process data in an efficient way therefore should be offered at a higher frequency to a broader range of students.

Read the paper · More papers on PaperTik