Very Preliminary Syllabus:
Commodity Parallel Processing

Instructor: Professor Hank Dietz
Office: FPAT469
Email: hankd@engr.uky.edu
Home URL: http://aggregate.org/hankd/
Course URL: http://aggregate.org/CPP
Text: Supporting documents will be distributed in class and/or via the course URL

Overview

This course will center on making students experts in using various forms of commodity-based parallel processing. The lectures will focus on the architectural and implementation details, and algorithms and programming methods, needed to obtain good performance from these systems. Entering students are expected to be comfortable writing C programs and to have had some exposure to the basic concepts of computer architecture.

Course Content

A very approximate overview of the lecture coverage, in "lecture weeks," is given in the following table. For each target, the lectures will cover the basic architecture, the programming environment, the algorithms and approaches to be used for the programming projects, and performance tuning issues.

Topic Weeks
Introduction to Commodity Parallel Processing
(why?, basic algorithms, execution and programming models, commodity issues)
2
Target 1: SIMD Within A Register (MMX and 3DNow!) 3
Target 2: Linux PC clusters ("Beowulfs") 4
Target 3: Other Models
(Shared Memory, Attached Processors)
2
Other stuff
(architectures and programming environments)
3

Homework, Projects, & Exams

For each target architecture and programming environment, there will be two projects: one trivial program and one simple application that must be implemented and optimized. Due to the nature of this course, access to the target computing systems may be limited, but mechanisms for doing code development elsewhere will be provided. Exams will be given (schedule to be announced) so that an exam section will cover each of the major portions of the course.

Although we reserve the right to adjust weightings, the projects for the three targets will be weighted approximately equally, with about 5% for each trivial program and 10% for each simple application. Homework questions may be given as integral parts of the programming assignments. The exam material will be roughly 10% per target plus 10% for the introduction and 15% for the material on other targets. So that any grading errors can be consistently corrected for all students, regrade requests (preferably in writing) must be made promptly and must be specific as to the reason a regrade is requested. Any work submitted for regrade may be re-evaluated in its entirety.

Although students are encouraged to discuss course material with one another, everything you submit must be entirely your own original work. UK guidelines dictate that violation of this policy will result in all involved students failing the course; more severe penalties also may be applied. Contact Professor Dietz before submitting work if you have any doubts about how this policy might apply.

How Will 599 and 699 Differ?

Basically, the projects for EE699 will be significantly more open-ended and the cluster project will be bigger, with a brief report and short in-class presentation required. Other than that, it's pretty much the same course. More details will be posted here shortly.


Commodity Parallel Processing.