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: SMPI Courseware: Teaching Distributed-Memory Computing with MPI in Simulation
It is typical in High Performance Computing (HPC) courses to give students access to HPC platforms so that they can benefit from hands-on learning opportunities. Using such platforms, however, comes with logistical and pedagogical challenges. For instance, a logistical challenge is that access to representative platforms must be granted to students, which can be difficult for some institutions or course modalities; and a pedagogical challenge is that hands-on learning opportunities are constrained by the configurations of these platforms. A way to address these challenges is to instead simulate program executions on arbitrary HPC platform configurations. In this work we focus on simulation in the specific context of distributed-memory computing and MPI programming education. While using simulation in this context has been explored in previous works, our approach offers two crucial advantages. First, students write standard MPI programs and can both debug and analyze the performance of their programs in simulation mode. Second, large-scale executions can be simulated in short amounts of time on a single standard laptop computer. This is possible thanks to SMPI, an MPI simulator provided as part of SimGrid. After detailing the challenges involved when using HPC platforms for HPC education and providing background information about SMPI, we present SMPI Courseware. SMPI Courseware is a set of in-simulation assignments that can be incorporated into HPC courses to provide students with hands-on experience for distributed-memory computing and MPI programming learning objectives. We describe some these assignments, highlighting how simulation with SMPI enhances the student learning experience.  more » « less
Award ID(s):
1642369
PAR ID:
10080762
Author(s) / Creator(s):
; ; ;
Date Published:
Journal Name:
Proceedings of EduHPC
ISSN:
2474-171X
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. As computing skills become necessary for 21st-century students, infused computational thinking (CT) lessons must be created for core courses to truly provide computing education for all. This will bring challenges as students will have widely varying experience and programming ability. Additionally, STEM teachers might have little experience teaching CT and instructing using unfamiliar technology might create discomfort. We present a design pattern for infused CT assignments that scaffold students and teachers into block-based programming environments. Beginning with existing code, students and teachers work together 'Using' and comprehending code before 'Modifying' it together to fix their programs. The activity ends with students 'Choosing' their own extensions from a pre-set list. We present a comparison of two implementations of a simulation activity, one ending with student choosing how to extend their models and one having all students create the same option. Through triangulating data from classroom observations, student feedback, teacher interviews, and programming interaction logs, we present support for student and teacher preference of the 'Student-Choice' model. We end with recommended strategies for developing curricula that follow our design model. 
    more » « less
  3. Transferring programming skills learned in the classroom to diverse real-world scenarios is both essential and challenging in computing education. This experience report describes an approach to facilitate learning transfer by fostering adaptive expertise. Students were engaged in co-creating contextualized worked-out examples, including step-by-step solutions. Through three homework assignments in a Spring 2023 database programming course, we observed substantial improvements, where students generated detailed and accurate solutions and enriched their problem-solving contexts from simple phrases to detailed stories, drawn from 17 real-life scenarios. Our results also suggest that the peer assessment process cultivated a supportive learning environment and fostered adaptive expertise. We discuss the lessons learned and draw pedagogical implications for integrating student-generated contextualized materials in other programming courses. 
    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. 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