Day 5 - Parallel and Distributed Computing
Day 5: Parallel and Distributed Computing
Learning Objectives
- CSN-2.A: For sequential, parallel, and distributed computing: a. Compare problem solutions. b. Determine the efficiency of solutions.
- CSN-2.B: Describe benefits and challenges of parallel and distributed computing.
Essential Questions
- How can tasks be divided across multiple computing devices?
- What are the benefits and challenges of parallel and distributed computing?
- How do we measure the efficiency of different computing approaches?
Materials Needed
- Presentation slides on parallel and distributed computing
- Task cards for parallel processing activity
- Stopwatches or timers
- Worksheet for calculating speedup
- Exit ticket templates
Vocabulary
- Sequential computing
- Parallel computing
- Distributed computing
- Speedup
- Efficiency
- Task decomposition
- Synchronization
- Scalability
- Amdahl's Law
- Overhead
Procedure (50 minutes)
Opening (8 minutes)
-
Review and Connection (3 minutes)
- Review network concepts from previous lessons
- Connect to today's focus on how networks enable parallel and distributed computing
-
Warm-up Activity (5 minutes)
- Present a task that would take a long time for one person (e.g., sorting a large deck of cards)
- Ask students: "How could we make this faster by involving more people?"
- Discuss strategies for dividing the work
- Introduce the concept of parallel processing
Main Activities (32 minutes)
-
Lecture: Parallel and Distributed Computing Concepts (12 minutes)
- Define the three computational models:
- Sequential computing: Operations performed one at a time in order
- Parallel computing: Program broken into smaller operations performed simultaneously
- Distributed computing: Multiple devices used to run a program
- Explain key concepts:
- Task decomposition: Breaking problems into smaller tasks
- Speedup: Sequential time divided by parallel time
- Amdahl's Law: Speedup limited by sequential portion
- Overhead: Additional time required for coordination
- Discuss real-world applications:
- Scientific simulations
- Weather forecasting
- Video rendering
- Big data processing
- Cryptocurrency mining
- Explain challenges of parallel/distributed computing:
- Coordination overhead
- Synchronization issues
- Communication costs
- Programming complexity
- Define the three computational models:
-
Demonstration: How Tasks Can Be Split Across Systems (8 minutes)
- Show examples of problems that can be parallelized:
- Searching through data
- Matrix operations
- Image processing
- Simulation calculations
- Demonstrate how to calculate speedup:
- Speedup = Sequential time / Parallel time
- Show how adding more processors affects speedup
- Illustrate Amdahl's Law with examples
- Discuss the limits of parallelization
- Show examples of problems that can be parallelized:
-
Activity: Modeling Parallel Problem-Solving (12 minutes)
- Divide class into groups of 4-5 students
- Assign each group a task that can be parallelized (e.g., sorting numbers, counting words, finding specific items)
- Have groups perform the task in two ways:
- Sequential: One person does the entire task
- Parallel: Task is divided among group members
- Groups should time both approaches
- Have groups calculate the speedup achieved
- Discuss factors that affected the speedup:
- Overhead of dividing the work
- Communication between group members
- Portions that couldn't be parallelized
Closing (10 minutes)
-
Discussion: Efficiency Gains and Challenges (5 minutes)
- Lead a discussion on what students observed in the activity
- Ask groups to share their speedup results
- Discuss why the speedup wasn't perfectly proportional to the number of people
- Connect to real-world parallel and distributed systems
- Address any misconceptions about parallelization
-
Exit Ticket: Parallel Processing Design (5 minutes)
- Present students with a problem scenario
- Students design a solution that uses parallel processing
- Students explain how they would divide the task
- Students identify potential challenges in their approach
- Collect responses before students leave
Assessment
- Formative: Quality of parallel problem-solving activity
- Exit Ticket: Appropriateness of parallel processing design
Differentiation
For Advanced Students
- Ask them to analyze more complex parallelization scenarios
- Have them calculate theoretical vs. actual speedup
- Challenge them to identify and resolve synchronization issues
For Struggling Students
- Focus on simpler parallelization examples
- Provide more structured templates for the activity
- Use more concrete analogies and visual aids
Homework/Extension
- Research a real-world application of parallel or distributed computing
- Calculate theoretical speedup for different scenarios
- Create an infographic explaining parallel vs. distributed computing
Teacher Notes
- Use everyday analogies to help students understand parallel processing (e.g., multiple checkout lines at a store)
- Be prepared to address questions about specific parallel computing technologies
- Make connections to students' experiences with slow-running applications
- Consider demonstrating parallel processing with a simple program if time allows
- Emphasize that understanding these concepts helps with designing efficient solutions