Initial Publication Date: February 23, 2018

SIGCSE 2018 Workshop 301:

Teaching Parallel & Distributed Computing with MPI on Raspberry Pi Clusters

Friday, February 23, 7:00 pm - 10:00 pm, Room 301

Instructors: Dick Brown (St. Olaf College), Joel Adams (Calvin College), Suzanne Matthews (USMA West Point), and Libby Shoop (Macalester College)

Abstract: CS2013 brings parallel and distributed computing (PDC) into the CS curricular mainstream. The Message Passing Interface (MPI) is a platform independent, industry-standard library for parallel and distributed computing. The MPI standard includes support for C, C++, and Fortran; third parties have created implementations for Python and Java. This hands-on workshop introduces MPI basics and applications in C/C++ using Raspberry Pi single-board computers, as an inexpensive and engaging hardware platform for studying PDC. The workshop includes - (i) personal experience with the Raspberry Pi (units provided) accessed via participant laptops (Windows, Mac, or Linux); (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 such clusters can be used to engage students in and out of the classroom. Participants will experience how to teach distributed computing essentials with MPI by means of reusable, effective "parallel programming patterns," including single program multiple data (SPMD) execution, send‐receive message passing, the master-worker, parallel loop, and other common patterns. Participants will then explore more in-depth "exemplar" applications, such as drug design and epidemiology. All materials including the Raspberry Pi software system setup from this workshop will be freely available from CSinParallel.org. No prior experience with MPI, PDC, or the Raspberry Pi is required.

Schedule

7-7:30 PM:

Introduction; Getting started with the Raspberry Pi clusters (Dick), 30 minutes

Raspberry Pi Laptop Connection (Acrobat (PDF) 1.7MB Feb23 18)

7:30-8:30:

MPI and Patternlets introduction (Joel), 10 min

Self-paced, hands-on exploration of MPI basics teaching materials, 50 min

8:30-8:45

Break, 15 minutes

8:45-9:30:

Exemplar applications

9:30-10:00:

Other Pi cluster options (Libby, Suzanne), 10 min

Suzanne Matthews slides: Raspbery Pis for Student Research (Acrobat (PDF) 442kB Feb23 18)

Brief discussion: Teaching students about message passing, multiprocessing, PDC, etc., using Raspberry Pis (team), 15 min

Assessment

  1. Please fill out the SIGCSE online form for this workshop.
  2. Also, please fill out Our CSinParallel Project Survey for this Workshop.

Course Modules for you to explore later

Patternlets

Patternlets in Parallel Programming

MPI Exemplars

MPI examples teaching module

OpenMP Exemplars

Multicore Programming with OpenMP

Monte Carlo Simulations: Parallelism in CS1/CS2

Concept:Data Decomposition Pattern

Pandemic Exemplar

Drug Design Exemplar

Notes for Drug Design Exemplar

Explore

If you are interested, you can find more information about the rest of our modules from the modules link on the left menu of this page.


Some resources

Patterns books