skip to main content


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
NSF-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. null (Ed.)
    To meet the rising demand for computer science (CS) courses, K-12 educators need to be prepared to teach introductory concepts and skills in courses such as Computer Science Principles (CSP), which takes a breadth-first approach to CS and includes topics beyond programming such as data, impacts of computing, and networks. Educators are now also being asked to teach more advanced concepts in courses such as the College Board's Advanced Placement Computer Science A (CSA) course, which focuses on advanced programming using Java and includes topics such as objects, inheritance, arrays, and recursion. Traditional CSA curricula have not used content or pedagogy designed to engage a broad range of learners and support their success. Unlike CSP, which is attracting more underrepresented students to computing as it was designed, CSA continues to enroll mostly male, white, and Asian students [College Board 2019, Ericson 2020, Sax 2020]. In order to expand CS education opportunities, it is crucial that students have an engaging experience in CSA similar to CSP. Well-designed differentiated professional development (PD) that focuses on content and pedagogy is necessary to meet individual teacher needs, to successfully build teacher skills and confidence to teach CSA, and to improve engagement with students [Darling-Hammond 2017]. It is critical that as more CS opportunities and courses are developed, teachers remain engaged with their own learning in order to build their content knowledge and refine their teaching practice [CSTA 2020]. CSAwesome, developed and piloted in 2019, offers a College Board endorsed AP CSA curriculum and PD focused on supporting the transition of teachers and students from CSP to CSA. This poster presents preliminary findings aimed at exploring the supports and challenges new-to-CSA high school level educators face when transitioning from teaching an introductory, breadth-first course such as CSP to teaching the more challenging, programming-focused CSA course. Five teachers who completed the online CSAwesome summer 2020 PD completed interviews in spring 2021. The project employed an inductive coding scheme to analyze interview transcriptions and qualitative notes from teachers about their experiences learning, teaching, and implementing CSP and CSA curricula. Initial findings suggest that teachers’ experience in the CSAwesome PD may improve their confidence in teaching CSA, ability to effectively use inclusive teaching practices, ability to empathize with their students, problem-solving skills, and motivation to persist when faced with challenges and difficulties. Teachers noted how the CSAwesome PD provided them with a student perspective and increased feelings of empathy. Participants spoke about the implications of the COVID-19 pandemic on their own learning, student learning, and teaching style. Teachers enter the PD with many different backgrounds, CS experience levels, and strengths, however, new-to-CSA teachers require further PD on content and pedagogy to transition between CSP and CSA. Initial results suggest that the CSAwesome PD may have an impact on long-term teacher development as new-to-CSA teachers who participated indicated a positive impact on their teaching practices, ideologies, and pedagogies. 
    more » « less
  4. 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
  5. null (Ed.)
    The AP Computer Science Principles (CSP) high school course introduces students to computer science and programming. What should motivated students study after successful completion of AP CSP? The AP CSA class teaches Java programming and it has traditionally not attracted students from underrepresented groups. We are working on an alternative, projects-based course that will teach cutting edge CS concepts, such as distributed computing, computer networking, cybersecurity, the internet of things and machine learning, in a hands-on, accessible manner. Such an approach enables students to work on problems that interest them making computing more relevant and the curriculum more engaging. We utilize NetsBlox, a collaborative, block-based programming environment that extends Snap! with a few carefully selected abstractions that open up the vast array of resources freely available on the internet for student programs. Moreover, the tool enables students to work together on the same project remotely similarly to how Google Docs operate. This demonstration will introduce the environment and highlight its utility in creating distributed applications such as a shared whiteboard app and projects that access public domain scientific data sources and visualize them in various ways using online services such as Google Maps or charting. More information is available at https://netsblox.org. 
    more » « less