Welcome to the 669 Course Home Page! This serves as the syllabus for the course. The URL is: /ece/tessier/courses/669/index.html
Instructor: Russell Tessier, Associate Professor, Department of Electrical and Computer Engineering, tel: 413-545-0160, email: tessier@ecs.umass.edu
TA: David Howland, dhowland@ecs.umass.edu, (413) 545-0370
Parallel processing has matured to the point where it has begun to make a considerable impact on the computer marketplace. This course seeks to equip students to specify, design, and evaluate parallel architectures for special-purpose and general-purpose applications. The course will devote special attention to compiler techniques for parallel machines. The course will begin with discussions of several typical numeric and combinatorial applications and focus on one or more of them to concretely illustrate the tradeoffs in application implementation. Students will then be shown how to classify parallel machines, with a discussion of the issues in controlling and programming in each class. Then follows a discussion of general-purpose multiprocessors. This includes a detailed study of interconnection networks such as hypercube, butterfly, and mesh. We will then perform a detailed study of cache coherency procedures for multiprocessors. The course will be closed with an analysis of compiler technology for parallel computers including loop tiling, data partitioning, processor allocation, and data alignment. Students will be provided with readings from the technical literature, to expose them to the state-of-the-art, and also to train them in the art of reading papers from research and development journals. (3 credits)
Prerequisites: Any introductory computer architecture class
Grading: 6 Homeworks (30%), Mid-term (35%), and Final Exam/Project (35%).
Textbook (Required): Parallel Computer Architectures: A Hardware/Software Approach , by David Culler, Jaswinder Pal Singh, and Anoop Gupta, Morgan-Kaufman, 1999, ISBN: 1-558-603433. Textbook Errata
Honesty Policy: Consultation with fellow students is encouraged, especially on design issues. However, directly copying another student's work defeats the purpose of the assignments and is an honor code violation.
Computer Requirements: Students will be doing labs using CAD software on UNIX workstations. Access to an on or off-campus SparcStation running SunOs/Solaris will be required. VIP students may choose to access computing resources via an ECS account.
Reference Material: Research papers will be suggested reading to help stimulate discussion.
Schedule (this WILL change
throughout the initial semester )
Event |
Fall 04 |
Topics |
Notes |
Reading |
Homework |
Lecture 1 |
Sept 8 |
Course Introduction |
Culler, 1.1, 1.2 |
|
|
Lecture 2 |
Sept 13 |
Architectural Perspective |
Culler, 1.2 |
|
|
Lecture 3 |
Sept 15 |
Design Issues |
Culler, 1.3 |
||
Lecture 4 |
Sept 20 |
Parallel Applications |
Culler, 2.1, 2.2 |
|
|
Lecture 5 |
Sept 22 |
Grid Computations |
Culler, 2.3.1-2.3.3 |
||
Lecture 6 |
Sept 27 |
Programming for Performance |
Culler, 3.1, 3.3.1 |
|
|
Lecture 7 |
Sept 29 |
Resource Balancing I |
|
||
Lecture 8 |
Oct 4 |
Resource Balancing II |
no notes |
Culler 4.1, 4.3 |
|
Lecture 9 |
Oct 6 |
Workload Evaluation |
Culler 4.1, 4.3 |
||
Lecture 10 |
Oct 11 |
Graph Applications |
|
||
Lecture 11 |
Oct 13 |
Static Routing Architectures |
|
||
Lecture 12 |
Oct 18 |
Interconnection Network Performance |
|
||
Lecture 13 |
Oct 20 |
Shared Memory Multiprocessors I |
Culler 5.1, 5.2 |
||
Lecture 14 |
Oct 25 |
Shared Memory Multiprocessors II |
no notes |
Culler 5.1, 5.2 |
|
Lecture 15 |
Oct 27 |
Mid-Term Review |
|
|
|
Lecture 16 |
Nov 1 |
Interconnection Topologies |
Culler 10.4 |
|
|
Lecture 17 |
Nov 3 |
Memory Systems |
|||
Lecture 18 |
Nov 10 |
Scalable Parallel Caches |
Culler 8.1, 8.2 |
|
|
Lecture 19 |
Nov 15 |
Processor Design |
|
||
Lecture 20 |
Nov 17 |
Evaluation and Message Passing |
Culler 7.2.3-7.2.5 |
||
Lecture 21 |
Nov 22 |
Routing |
Culler 10.6-10.8 |
|
|
Lecture 22 |
Nov 24 |
Guest Lecture on Interconnect: Prof. W. Burleson |
|
||
Lecture 23 |
Nov 29 |
Parallel Compilation |
|
||
Lecture 24 |
Dec 1 |
Adaptive System on a Chip |
|
||
Lecture 25 |
Dec 6 |
Final Exam Review |
|
|
|
Lecture 26 |
Dec 8 |
Reconfigurable Computing |
|
||
Lecture 27 |
Dec 13 |
Course Wrap Up |
Culler 12.1, 12.2 |
|
Other information