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
- Introduction to Drug Design Exemplar (Dick), 10 min
Slides: Drug Design Exemplar Introduction (Acrobat (PDF) 2.8MB Jan31 18)- More MPI exemplars (Libby), 10 min
- Self-paced, hands-on exploration of MPI exemplars, 25 min
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
- Please fill out the SIGCSE online form for this workshop.
- 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 moduleOpenMP Exemplars
Multicore Programming with OpenMP
Monte Carlo Simulations: Parallelism in CS1/CS2
Concept:Data Decomposition Pattern
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
- Patterns for Parallel Programming, by Timothy G. Mattson , Beverly Sanders , Berna Massingill
ISBN-13: 978-0321940780 ; ISBN-10: 0321940784 - Structured Parallel Programming: Patterns for Efficient Computation, by Michael McCool, James Reinders , Arch Robison
ISBN-13: 978-0124159938 ; ISBN-10: 0124159931