100 likes | 202 Vues
Explore the successful adoption of the TCPP Core Curriculum at University of Massachusetts Amherst to teach fundamental principles and techniques in computer systems. Learn how to integrate parallelism seamlessly into existing courses, focusing on program representation, architecture, virtual memory, and more.
E N D
Thinking in ParallelAdopting the TCPP Core Curriculumin Computer Systems Principles Tim Richards University of Massachusetts Amherst
Computer Systems Principles A Core Course in Computer Systems UMass Amherst Computer Science Department Software To teach students fundamental principles and techniques in computer systems and how to program them. Hardware
Problem Introducing parallelism into an existing course is difficult First Half Second Half Program Representation Process & Exceptions Architecture Threads Virtual Memory Synchronization Memory Management Network Programming
Problem Introducing parallelism into an existing course is difficult First Half Second Half Abrupt Switch from sequential to parallel programming model Program Representation Process & Exceptions Architecture Threads Virtual Memory Synchronization Gap in Understanding Memory Management Network Programming
Goal #1 Re-focus existing course materialto make parallelism a common thread First Half Program Representation Thinking in Parallel Architecture Pipelines, ILP, Multicore, GPUs Virtual Memory Multi-Processing in Life & Shell Processing in Parallel Memory Management
Goal #2 Migrate course material over time, teach students to think in parallel early, to reduce gap in understanding First Half Enhanced assignments to include problems in parallelism, concurrency, & synchronization Program Representation Thinking in Parallel Architecture Pipelines, ILP, Multicore, GPUs Virtual Memory Multi-Processing in Life & Shell Processing in Parallel Memory Management
Results • Introducing parallelism incrementally in existing course infrastructure is easy. • Making parallelism a common thread improved student success rates in project assignments. • Improved discussion and understanding in class and online forums. • Increased overall student performance in course.
Survey Results S13 • Introducing parallelism incrementally in existing course infrastructure is easy. • Making parallelism a common thread improved student success rates in project assignments. • Improved discussion and understanding in class and online forums. • Increased overall student performance in course.
Survey Results S13 • Introducing parallelism incrementally in existing course infrastructure is easy. • Making parallelism a common thread improved student success rates in project assignments. • Improved discussion and understanding in class and online forums. • Increased overall student performance in course.
Thanks! Tim Richards University of Massachusetts Amherst Computer Science Department richards@cs.umass.edu