SIGCSE 2022 Workshop 101:
Teaching Distributed Computing Fundamentals using Raspberry Pi Clusters
Wednesday 3/2/22, 7:00-10:00pm
Narragansett Ballroom A (Omni)
Instructors: Elizabeth Shoop (Macalester College); Joel Adams (Calvin University); Suzanne Matthews (West Point); Richard Brown (St. Olaf College)
Do you need a fast way to incorporate parallel and distributed computing (PDC) topics into your computer science curriculum without radically changing your syllabus? Are you fretting about ABET's new PDC requirements? Don't worry -- it's easy as (Raspberry) pi! Join us in this fun hands-on workshop where we will show you how to introduce students to PDC concepts using the Message Passing Interface (MPI) on affordable Raspberry Pi Beowulf clusters. This in-person workshop is based on part of our NSF-sponsored 2021 CSinParallel summer workshop. Except for participants' laptops (required), all workshop materials will be provided or will be freely available at CSinParallel.org.
Abstract: The 2019 ABET computer science criteria requires that all computing students learn parallel and distributed computing (PDC) as undergraduates, and CS2013 recommends at least fifteen hours of PDC in the undergraduate curriculum. Consequently, many educators are looking for easy ways to integrate PDC into courses at their institutions. This hands-on workshop introduces Message Passing Interface (MPI) basics in Python or C/C++ using clusters of Raspberry Pi single-board computers. MPI is a multi-language, platform independent, industry-standard library for PDC. Raspberry Pis are an inexpensive and engaging hardware platform for studying PDC as early as CS1. Participants will experience how to teach distributed computing essentials with MPI by means of reusable, effective "parallel patterns," including single program multiple data (SPMD) execution, send-receive message passing, and parallel loop patterns. No prior experience with MPI, PDC, or the Raspberry Pi is expected; participants will explore short programs designed to help students understand MPI basics, plus longer "exemplar" programs that use MPI to solve significant applied problems. The workshop includes: (i) personal experience with the Raspberry Pi (clusters provided); (ii) instructions on how to deploy Raspberry Pi clusters quickly in the classroom; (iii) self-paced hands-on experimentation with MPI programs; and (iv) a discussion of how to use Raspberry Pi clusters to align courses with CS2013 and ABET. All materials from this workshop are available from CSinParallel.org; participants should bring a laptop to access materials and connect to the Raspberry Pi clusters.
Part 1: Hands-on exploration
Welcome; Introduction to Raspberry Pi clusters and MPI (25 min)
- Pre-survey on distributed computing
- Introduction to Raspberry Pi Clusters
- Introduction to MPI (PowerPoint 2007 (.pptx) 13.6MB Feb24 22)
- Note: Using WiFi While Connected to Your Raspberry Pi
Hands-on exploration - Exploring MPI Patternlets (60 min)
Break (15 min)
Part 2: In-depth examples
Fire Simulation exemplar; Drug Design exemplar (50 min)
Part 3: Teaching experiences and resources
Teaching with Raspberry Pis(20 min)
9:30 [Suzanne, Dick, Libby]
- Is Rapid Integration of PDC Possible?
- Experiences teaching with Raspberry Pis in Systems at West Point [Suzanne]
- Experiences teaching with Raspberry Pis in Systems at St. Olaf [Dick]
- Teaching the_Systems Course with Raspberry Pi Kits.pdf (Acrobat (PDF) 878kB Feb24 22)
- HD Raspberry Pi Laptop Connection - Google Docs.pdf (Acrobat (PDF) 4.1MB Mar11 20)
- MPI in an advanced course at Macalester [Libby]
- LearnPDC.org - Hands-on materials for learning PDC
- PDCunplugged.org site - Repository of free unplugged resources for teaching PDC.
- CSinParallel.org site - Source of additional materials for teaching/learning parallel and distributed computing.