Select a location for
Intel Education
Intel ® Higher Education Curriculum ForumIntel® Higher Education Curriculum Forum - Parallel Computer Architecture and Programming Curriculum
Home ›  About Intel ›  Education Home ›  Higher Education ›  Curriculum › 

The goal of this course is to provide a deep understanding of the fundamental principles and engineering tradeoffs involved in designing modern parallel computers (aka "multiprocessors" and "multicore"), as well as the programming techniques to effectively utilized these machines. Parallel machines are already ubiquitous from desktops to supercomputers, and the expectation is that they will become even more commonplace in the future. However, very few people exploit the potential processing power of these machines because they do not understand how to write efficient parallel programs.

Because one cannot design a good parallel program without understanding how parallel machines are built and vice-versa, this course will cover both parallel hardware and software design, as well as the impact that they have on each other.

Course topics include naming shared data, synchronizing threads, and the latency and bandwidth associated with communication. Case studies on shared-memory, message-passing, data-parallel and dataflow machines will be used to illustrate these techniques and tradeoffs. Programming assignments will be performed on one or more commercial multiprocessors, and there will be a significant course project.

This is a relatively unique course since this material is rarely offered to undergraduates. Because parallel processing has become such an important and mainstream technology, the time has come to integrate this material into the undergraduate systems curriculum.

Dr. Todd Mowry, Carnegie Mellon University, authored this course. It is serves as one of the first undergrad courses focusing on parallel architecture and programming.

Complete Syllabus

Assumptions:
Format: 3 Lecture sessions per week, Each session 1.5 hours in duration
Required Text: David E. Culler and Jaswinder Pal Singh, with Anoop Gupta. Parallel Computer Architecture: A Hardware/Software Approach. 1998, ISBN: 1558603433


WeekLecture TopicsHomeworkReadingExam
11.Why Parallel Architecture?
2.Evolution and Convergence
3.Fundamental Design Issues

1.1
1.2
1.3-4

24-5.Parallel Programming:
Overview
Initiate Lecture 6
Assignment #1 Issued2.1-2
2.3-4
3.1

36-8.Parallel Programming:
Performance
9.Parallel Programming:
9a. Case Studies
9b. Implications for Programming
Models
Assignment #2 Issued3.2
3.3-4
3.5-6

410-11.Workload-Driven Architecture Evaluation
Initiate Lecture 12
Assignment #1 Due4.1
4.2-3
5.1

512-14.Shared Memory Multiprocessors
Initiate Lecture 15
Assignment #3 Issued5.3
5.4
8.1-5

615-16.Directory-Based Cache Coherence
17.Memory Consistency Models
Initiate Lecture 18
Assignment #2 Due8.6-7,
8.9-11
9.1
6.1

718-22.Snoop-Based Multiprocessor Design
6.2-4
6.5-7
Exam 1
823.Synchronization
Catch up week
Assignment #3 Due
Term Project Proposal Due
Term Project Administrative Info
5.5
7.9
8.8

924-25.Scalable Distributed Memory
Multiprocessors
26.Interconnection Network Design

7.1-3
7.4-8
10.1-10

1027.Latency Tolerance: Prefetching
28.Latency Tolerance: Multithreading
Term Project: Milestone #1 Due11.1, 11.6
11.7-9

11-12
Term Project: Milestone #2 Due
Exam 2
13-14Project Poster SessionTerm Project Due


Complete Lecture Download
Complete Exam Download
Complete Project Download

Express Access--Download the Complete Collection of Lectures, Projects, and Exams. (ZIP; 2.9MB)
Intel® Education Initiative