SIGCSE 2020 Workshop 105:
Introducing Beginners to Distributed Computing using Raspberry Pi Clusters
Wednesday 3/11/20, 7:00-10:00pm, B112
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 pi! Join us in this fun hands-on workshop where we will show you how to introduce students to PDC concepts using affordable Raspberry Pi Beowulf clusters. This workshop is based on part of our NSF-sponsored 2019 CSinParallel summer workshop. All teaching and other workshop materials are 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 C/C++ and Python using clusters of Raspberry Pi single-board computers. The Message Passing Interface (MPI) is a multi-language, platform independent, industry-standard library for parallel and distributed computing. Raspberry Pis are an inexpensive and engaging hardware platform for studying PDC as early as the first course. 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, the master-worker pattern, parallel loop patterns, and other common 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) assembly of Beowulf clusters of Raspberry Pis quickly in the classroom; (iii) self-paced hands-on experimentation with the working MPI programs; and (iv) a discussion of how these may be used to achieve the goals of CS2013 and ABET. All materials from this workshop will be freely available from CSinParallel.org ; participants should bring a laptop to access these materials.
Part 1: Hands-on exploration
Welcome; Introduction to Raspberry Pi clusters (15 min)
7:00 [Suzanne, Libby]
- Introduction to Raspberry Pi [Suzanne]
- Introduction to Raspberry Pi (MP4 Video 6.6MB Mar10 20)
- Getting started on the Raspberry Pi Clusters [Libby]
Introduction to MPI(15 min)
7:15 [Joel]
- Introduction to MPI (Acrobat (PDF) 11MB Mar11 20)
Hands-on exploration - Exploring MPI Patternlets (60 min)
7:30pm [Libby]
Break (15 min)
8:30pm
Part 2: In-depth examples
Fire Simulation exemplar; Drug Design exemplar (30 min)
8:45 [Libby]
- Introduction to mpi4py Examples (Acrobat (PDF) 31kB Mar10 20)
- Fire Simulation exemplar: step-by-step (Acrobat (PDF) 175kB Mar10 20)
- Drug Design exemplar: step-by-step (Acrobat (PDF) 307kB Mar10 20)
Part 3: Teaching experiences and resources
Curricular recommendations; Unplugged activities (15 min)
9:15 [Suzanne, Joel]
- Is Rapid Integration of PDC Possible? [Suzanne]
- Rapid curricular integration video (MP4 Video 37.2MB Mar10 20)
- pdcunplugged.org
- Experience teaching PDC with unplugged activities [Joel]
- Experience teaching PDC unplugged (Acrobat (PDF) 27.8MB Mar11 20)
Teaching with Raspberry Pis (15 min)
9:30 [Libby, Dick]
- Experiences teaching with Raspberry Pis in PDC and CS1 courses [Libby]
- Experiences teaching with Raspberry Pis in Systems [Dick]
- HD Raspberry Pi Laptop Connection - Google Docs.pdf (Acrobat (PDF) 4.1MB Mar11 20)
Come to our BOF!
Feedback (15 min)
9:45pm [Dick]
Additional links:
- PDCunplugged.org site
Repository of free unplugged resources for teaching PDC.
Source of additional materials for teaching/learning parallel and distributed computing.