Single-chip multiprocessor architectures provide the opportunity to exploit fine-grained thread-level parallelism. By 'fine-grained parallelism' we are referring to threads that execute 10-500 instructions before termination or the next inter-thread communication/synchronization. We are explicitly not referring to instruction level parallelism within a single thread.
Exploiting fine-grained parallelism requires support from the hardware architecture, the programming language and the runtime system. Applications must also be explicitly designed to expose this form of parallelism. We will read papers from the architecture literature, programming language literature, and algorithm/application literature that provide insight into how to exploit fine-grained parallelism in future systems.This course will be a seminar-style course. Most class periods will consist of one or more paper presentations by students in the class, followed by group discussion and brainstorming about the topics discussed in the papers. The presentations of papers will be expected to contain throughtful analysis of the papers rather than just rote regurgitation. Students will be expected to read the assigned papers before each class, since the the goal is to use the class time for creative dicussions.
There will be no exams in this course.
If you take the course CR/NC, you are exempt from the project requirements, and you will be graded based on your preparation and participation in class discussions and on your seminar presentations.
You may choose the topic of your projects, subject to permission of the instructor. For more ambitious projects, you may work in teams of two (or possibly more), subject to permission of the instructor.
Assignments are due at the beginning of lecture on the due date.
There will generally be two or three papers to read each week, although this will vary some from week to week. We plan to use the bulk of the class time for in-depth discussion and analysis of the papers and the research areas they cover, rather than simply regurgitating the material in the papers.
For some (perhaps most) of the seminars, you will be required to prepare a short (~1 page) response to a question about some of the readings, and turn that in at the start of the seminar. The instructor will grade these writeups as part of the class participation and discussion grade using a 0/check-minus/check/check+ system.
Students will take turns presenting a summary of papers and leading a discussion about the ideas discussed in the paper. Each student will do this approximately three times during the semester, although the exact number of times each student has to present will depend on class enrollment. Since we meet only once a week, one student will present and lead discussion during the first half of class; then we will take a short break; then a second student will present and lead discussion.
You are responsible for preparing each week for the seminar. We will use the class email list for communication, so you are responsible for insuring that the instructor has a valid email address for you, for reading your email daily, and for insuring that your mailbox does not overflow. You are responsible for following the course policies on collaboration and cooperation. You must provide at least two weeks advance notice to the instructor for any forseeable situation requiring special consideration from the instructor (e.g. religious holiday conflicts; disability accomodations, etc.)
Feb 1 , 2006 -- last date to drop for removal of course from transcript and
Feb 13, 2006 -- last date to drop for automatic "Q" grade.
March 27, 2006 -- last date to drop for undergraduates (typically "Q" grade).
Last day of semester -- last day to drop for graduate students (typically "Q" grade).
The Dean may grant exceptions to these deadlines for substantiated non-academic reasons.