skip to main content
US FlagAn official website of the United States government
dot gov icon
Official websites use .gov
A .gov website belongs to an official government organization in the United States.
https lock icon
Secure .gov websites use HTTPS
A lock ( lock ) or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.


Title: Exploring Parallel Computing with OpenMP on the Raspberry Pi
The ACM/IEEE CS 2013 report recommends fifteen hours of parallel & distributed computing (PDC) education for every undergraduate. This workshop illustrates the use of the Raspberry Pi as an inexpensive, multicore platform for teaching shared-memory parallel programming. The inexpensive and tactile nature of the Raspberry Pi enables each student to experience her own parallel multiprocessor through sight and touch. In this hands-on workshop, we will teach attendees how they can leverage the Raspberry Pi and the OpenMP library to teach shared-memory parallel concepts in their own classrooms. All CS educators who are interested in learning about the Raspberry Pi, shared memory parallelism, and OpenMP are encouraged to attend. In Part I of the workshop, each participant will connect to and learn about the Raspberry Pi's multicore capabilities. In Part II, each participant will engage in self-paced, hands-on exploration of basic parallel computing concepts using the OpenMP "patternlets" from CSinParallel.org. In Part III, participants will investigate more complex applications, such as numeric integration and drug design and study how these applications can be parallelized using OpenMP. We will conclude the workshop with a series of lightning talks discussing how the Raspberry Pi has been used to teach parallel computing concepts at different institutions. We will also present a summary of student perceptions of the Raspberry Pi. All materials from this workshop will be freely available from CSinParallel.org. Space is limited to 20 participants. A laptop is required.  more » « less
Award ID(s):
1822480 1855761
PAR ID:
10135707
Author(s) / Creator(s):
; ; ;
Date Published:
Journal Name:
Proceedings of the 50th ACM Technical Symposium on Computer Science Education (SIGCSE ’19)
Page Range / eLocation ID:
1234 - 1234
Format(s):
Medium: X
Sponsoring Org:
National Science Foundation
More Like this
  1. null (Ed.)
    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 look 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 Pis. 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, plus longer "exemplar" programs that use MPI to solve significant applied problems. The workshop includes: (i) personal experience with the Raspberry Pi (clusters provided for workshop use); (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. No prior experience with MPI, PDC, or the Raspberry Pi is expected. All materials from this workshop will be freely available from CSinParallel.org; participants should bring a laptop to access these materials. 
    more » « less
  2. Ghafoor, Sheikh; Prasad, Sushil K. (Ed.)
    The ACM/IEEE CS 2013 curriculum recommendations state that every undergraduate CS major should learn about parallel and distributed computing (PDC). One way to accomplish this is to teach students about the Message Passing Interface (MPI), a platform that is commonly used on modern supercomputers and Beowulf clusters, but can also be used on a Network of Workstations (NoW), or a multicore laptop or desktop. MPI incorporates many PDC concepts and can serve as a platform for hands-on learning activities in which students must apply those concepts. The MPI standard defines language bindings for Fortran and C/C++, but many university instructors lack expertise in these languages, preventing them from using MPI in their courses. OpenMPI is a free implementation of the MPI standard that also provides Java bindings for MPI. This paper describes how to install OpenMPI with these Java bindings; to illustrate the use of these bindings, the paper also presents several patternlets—minimalist example programs—that show how to implement PDC design patterns using OpenMPI and Java. This provides a new means of introducing students to PDC concepts. 
    more » « less
  3. The rise in CS enrollments in the past few years has also resulted in a more diverse population of learners that have different expectations, motivations and interests, making it important to provide relevant learning materials in early foundational courses. Grounding Computer Science concepts in reality by solving important real-world or fun problems are keys to increasing students’ motivation and engagement in computing, which may help improve student retention and success. This workshop provides instructors with a hands-on introduction to BRIDGES, a software infrastructure for programming assignments in early computer science courses, such as CS1, CS2, data structures, and algorithm analysis. BRIDGES provides the tools for creating engaging programming assignments, including: (1) a simplified API for accessing real-world data, such as those from social networks, entertainment (songs, movies), science, engineering (USGIS Earthquakes, elevation maps), geography (OpenStreet maps), and literature (Project Gutenberg), (2) creating visualizations of the data, (3) an easy to use API for game-based assignments, and, (4) algorithm benchmarking. Workshop attendees will engage in hands-on experience using BRIDGES with multiple datasets, have the opportunity to discuss the challenges they face in their own courses, and how BRIDGES can be used in their own courses. Using BRIDGES in data structures, algorithms, and other courses have shown improved retention of CS knowledge and better student performance in follow-on courses, when compared to students from other sections of the same course. BRIDGES has impacted nearly 2000 students across 20 institutions since its inception 5 years ago. A repository of BRIDGES assignments is now maintained for instructors using BRIDGES in their classes. 
    more » « less
  4. Despite increasing enrollments in CS in recent years, retention of CS majors to meet current and future workforce needs remains a major concern. Grounding Computer Science concepts by solving important real-world problems or fun problems can be keys to increasing students’ motivation and engagement in computing, and may provide a path to improving retention in CS programs. This tutorial provides instructors with a hands-on introduction to BRIDGES, a software infrastructure for programming assignments in early computer science courses, including introductory programming (CS1, CS2), data structures, and algorithm analysis. BRIDGES provides capabilities for creating engaging programming assignments, including: (1) a simplified API for accessing real-world data sets}, including social networks; scientific, government, and civic organization data; and movie, music, and literature collections; (2) interesting visualizations of the data, (3) an easy to use API that supports creation of games, and, (4) algorithm benchmarking. Workshop attendees will engage in hands-on experience with BRIDGES and will have the opportunity to discuss how BRIDGES can be used in their own courses. 
    more » « less
  5. Engaging undergraduates in research has been shown to improve retention, increase students' sense of computer science identity, and increase their chances of continuing to graduate school. Yet research experiences at most universities are ad hoc, and many undergraduates-particularly those from groups underrepresented in computing-do not have the opportunity to participate. The Early Research Scholars Program (ERSP) is a structured, academic-year group-based undergraduate research program designed to help universities vastly increase participation in research for early computing undergraduates. ERSP launched at UC San Diego in 2014 where it now annually engages over 50 second-year undergraduates, 59% of whom are women, and 22% of whom are from underrepresented racial and ethnic groups. The program's portable design has enabled its expansion to 7 other colleges and universities. This workshop will train participants in launching ERSP (or any part of it) at their university to increase and diversify the undergraduates participating in research. Workshop leaders are the ERSP directors at four universities. They will address how to launch and run the program in different contexts. They will provide an interactive, hands-on experience of running the program covering the following topics: developing and teaching a research methods class, student application and selection to ensure a diverse and supportive cohort, and creating a dual-mentoring structure to engage and retain early undergraduates without overburdening faculty. Workshop participants will be invited to join the ERSP virtual community to get support launching their own version of ERSP. 
    more » « less