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

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; 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)

7:00 [Suzanne]

Hands-on exploration - Exploring MPI Patternlets (60 min)

7:25pm [Joel]

Break (15 min)


Part 2: In-depth examples

Fire Simulation exemplar; Drug Design exemplar (50 min)

8:40 [Dick]

Part 3: Teaching experiences and resources

Teaching with Raspberry Pis(20 min)

9:30 [Suzanne, Dick, Libby]

Feedback(10 min)

9:50pm [Dick]

Additional links: