Initial Publication Date: March 5, 2020

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

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 ; 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]
  • Getting started on the Raspberry Pi Clusters [Libby]

Introduction to MPI(15 min)

7:15 [Joel]

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

7:30pm [Libby]

Break (15 min)


Part 2: In-depth examples

Fire Simulation exemplar; Drug Design exemplar (30 min)

8:45 [Libby]

Part 3: Teaching experiences and resources

Curricular recommendations; Unplugged activities (15 min)

9:15 [Suzanne, Joel]

Teaching with Raspberry Pis (15 min)

9:30 [Libby, Dick]

Come to our BOF!

BOF #2A: Incorporating Parallel Computing in the Undergraduate Computer Science Curriculum; Thursday 3/12, 5:30pm - 6:20pm,C122

Feedback (15 min)

9:45pm [Dick]

Additional links:

  • site

Repository of free unplugged resources for teaching PDC.

Source of additional materials for teaching/learning parallel and distributed computing.