SIGCSE 2019 Workshop 102:
Exploring Parallel Computing with OpenMP on the Raspberry Pi
Wednesday 2/27/19, 7:00-10:00pm
Hyatt Greenway B (2nd floor)
Instructors: Suzanne Matthews (West Point), Joel Adams (Calvin College), Dick Brown (St. Olaf College), and Libby Shoop (Macalester College)
Are you interested in learning multi-core programming? It's easy as Pi! Join CSinParallel in this fun repeat of our very successful 2017 SIGCSE workshop, in which you will explore how to spread the workload of computationally-intensive workloads over the different cores of a Raspberry Pi, a quad-core single board computer that retails for $35.00. Attendees will learn the basics of OpenMP, an industry standard for shared memory programming.
Abstract: Parallel computing is one of the new knowledge units in the ACM/IEEE CS 2013 curriculum recommendations. This workshop will present the Raspberry Pi as an inexpensive hardware platform for providing each student with her own parallel processor. The tactile benefits of each student having her own machine and being able to take full advantage of its multicore capabilities are significant. In this hands-on workshop, we show how parallelism can be used to spread the workload of compute-intensive applications across the multiple cores of a Raspberry Pi, and explore its use as an inexpensive hardware platform for teaching parallel computing. CS educators who are interested in learning about parallel computing, OpenMP, and how to teach these concepts on a Raspberry Pi are encouraged to attend. Participants will enjoy a hands-on hardware/software experience, exploring how parallel computations operate and work in practice. In Part I of the workshop, participants will set up and explore a Raspberry Pi multi-core computer in small teams. In Part II, each team will use the parallel capabilities of the Raspberry Pi to explore parallel computation through the use of OpenMP "patternlets" published on CSinParallel.org. In Part III, participants will investigate applications of the Raspberry Pi to parallel computations such as image processing and population dynamics, using OpenMP. All materials from this workshop will be freely available from CSinParallel.org.
Part 1: Hands-on exploration
- Introduction to Raspberry Pi - 7:00 [Suzanne] (10 min)
- Introduction to Raspberry Pi (Acrobat (PDF) 739kB Feb21 19)
- Introduction to Raspberry Pi (PowerPoint 2007 (.pptx) 2.4MB Feb21 19)
- Laptop connection to Raspberry Pi - 7:10 [Dick] (20 min)
- Raspberry Pi 3 laptop connection - instructions (Acrobat (PDF) 1.7MB Jan24 19)
- Raspberry Pi Basics/Patternlets, with OpenMP - 7:30 [Joel] (50 min)
- Handout (Acrobat (PDF) 223kB Mar2 17)
- Race condition worksheet (Acrobat (PDF) 438kB Mar2 17)
- Break -8:20pm (15 min)
Part 2: In-depth examples
Integration Exemplar (15 min)
8:35 [Libby]
- Integration slides (Acrobat (PDF) 5.2MB Mar2 17)
Integration slides (PowerPoint 2007 (.pptx) 8MB Mar11 17) - Numerical integration with 1 thread (Quicktime Video 1.3MB Mar11 17)
Numerical integration with 4 threads (Quicktime Video 771kB Mar11 17)
Drug Design Exemplar (25 min)
8:50 [Dick]
- Drug design slides (Acrobat (PDF) 2.8MB Mar2 17)
Drug design slides (PowerPoint 2007 (.pptx) 2.1MB Mar11 17) - Drug Design worksheet (Acrobat (PDF) 245kB Jan24 19)
Part 3: Teaching experiences
Assessment results - Prior Workshops
(8 min) [Suzanne]
- Assessing Teaching OpenMP on the Raspberry Pi (Acrobat (PDF) 1.7MB Jan24 19)
PicoCusters
(8 min) [Libby] - picocluster experience Picocluster.pptx (PowerPoint 2007 (.pptx) 30.7MB Feb27 19)
TSGL, the Thread-Safe Graphics Library
(8 min) [Joel] - TSGL
Discussion
9:40pm (10 min) [Joel]
Feedback
9:50pm (10 min) [Joel]
Additional links:
- Raspberry Pi 3 image (Windows, Mac, Linux) (3.6 GB, zip format)
- Download, uncompress with unzip or 7zip (Mac), and flash onto an 8GB micro USB card.
(For instructions, see steps 1-6 of Setting Up the Master Node in
Creating a Raspberry Pi Cluster: A Tutorial for Students (Acrobat (PDF) 1.1MB Jan24 19))
- Download, uncompress with unzip or 7zip (Mac), and flash onto an 8GB micro USB card.
- CSinParallel.org site
- Source of additional materials for teaching/learning parallel and distributed computing.