Using Embedded Xinu and the Raspberry Pi 3 to Teach Parallel Computing in Assembly Programming

Benjamin Levandowski, Debbie Perouli, Dennis Brylow · 2019

The 2013 ACM/IEEE curriculum guidelines highlight the importance of teaching parallel computing to undergraduates in higher education. Universities have responded to this need, but there remains a hole in most curricula. While techniques for parallelizing code and using tools such as MPI and OpenMP seem to be well covered, concepts of shared versus distributed memory and race conditions are often taught only at an abstracted level. Using the educational operating system Embedded Xinu, students can write ARM assembly code that makes use of instructions meant specifically for multicore interaction. By having students implement exercises such as the coupon collector's problem, they can gain a much deeper understanding of potential issues with sharing memory and maintaining cache coherence. This added curriculum fits with existing computer organization courses and helps to prepare students for future work in parallel computing. This paper presents specific enhancements used with the Embedded Xinu operating system and its associated ARM Playground, as well as a pilot study using the new curriculum with undergraduates in a typical hardware systems course.

Read the paper · More papers on PaperTik