![]() |
|
Over the last decade, processor vendors have shifted their strategy for improving microprocessor performance to delivering multiple cores per chip instead of continuing to pursue dramatic increases in clock frequency. This change represents something of a cataclysmic shift for software. In the past, application programmers painlessly rode the wave of higher clock frequencies to faster performance. With the advent of multicore processors, improvements in application performance will depend upon making effective use of increasing levels of coarse-grain parallelism. As a result, parallel programming has suddenly become relevant for all computer systems.
The goal of the course is to study multicore processor architectures, the implications of hardware designs, software challenges, and emerging technologies relevant to hardware and software for multicore systems. Topics will include multicore microprocessors, memory hierarchy (cache organization alternatives), multithreaded programming models, scheduling (including work stealing), memory models (which specify program behavior), synchronization (including wait-free synchronization), transactional memory (hardware and software), concurrent data structures, debugging (including race detection), and performance analysis.
This course will focus on reading, analyzing, and discussing research papers (many of them award winning) related to hardware and software issues for multicore systems.
COMP 320 and COMP 425 or equivalent. General knowledge of computer systems and computer architecture will be assumed.
Students will be required to plan and deliver two to three class presentations, depending upon course enrollment. A presentation on set of papers should include
Presenters are advised, but not required, to show their presentations to the instructor in advance. Each presentation will have one class period (75 minutes). On the day of the presentation, the presenter will provide the instructor with a version of the presentation suitable for posting on the class web page.
Students are required to evaluate a paper for two-thirds of the class sessions. A paper evaluation consists of
Paper evaluations will be graded on a scale of 1-3. The default grade is 2. Insightful reviews will receive a 3. Disappointing reviews will receive a 1. Students will email evaluations of papers to the instructor (johnmc@rice.edu) before the start of the class in which the paper is presented. Late or incomplete evaluations will receive no credit.
Students are required to submit brief evaluations of up to a maximum of 12 class presentations of other students. There are two motivations for this. First, if you have to write reviews of presentations, you will pay closer attention. Second, if you know that your presentation is being evaluated by your classmates (as well as the instructor), you may try harder to make it engaging. The ability to make engaging presentations to intelligent audiences is one of the most important skills that you need.
A presentation evaluation consists of
Presentation evaluations will be graded on a scale of 1 to 3. The default grade is 2. Insightful evaluations will receive a 3. Disappointing evaluations will receive a 1. Evaluations for presentations that I believe the reviewer did not attend will receive a 0.
Presentation evaluations are intended to be helpful. They should be frank, but never mean. Your evaluations will be kept anonymous. I will merge and edit presentation evaluations submitted and forward them to the presenters. I reserve the right to edit or suppress inappropriate or unhelpful comments.
To receive credit for a presentation evaluation, email it to the instructor (johnmc@rice.edu) before Friday 6:00 pm in the week in which the presentation occurred. Late or incomplete evaluations will receive no credit.
COMP 522 requires a term paper or a final project with a written project report.
Term papers must be done individually. For a term paper, you may focus on the same topic as one of your presentations, but you should study different papers. Ask the instructor if there is any question.
Final projects will typically be done individually, but they may be done by a pair with instructor permission. Group projects will submit a single writeup. A project involving application development or experimentation may build upon existing code, but consultation with the instructor is in order. Code that is obtained from other sources should be clearly identified.
The term paper or final project is subject to the honor code in that students should produce their own work. You may not directly copy written material from other sources.
You are encouraged to discuss the readings with others, but paper evaluations are to be prepared and submitted individually. You may consult other papers for further insights into the material; however, your evaluations should be your own words.
Presentations may draw upon the papers and other resources on the web as you prepare your presentations; however, your presentations are expected to be your own, not copies of pre-existing materials found on the web. You may use figures from the papers themselves and other sources as part of your presentation with proper citation.
Presentation evaluations should be prepared and submitted individually based on your own assessment of class presentations.
Unless otherwise agreed upon with the instructor, projects are to be prepared and submitted individually. A project involving application development or experimentation may build upon existing code, but consultation with the instructor is in order. A term paper must be your own work.
If you have a documented disability that will impact your work in this class, please contact me during the first two weeks of the semester to discuss your needs. All discussions will remain confidential. Additionally, you will need to contact Disability Support Services in the Ley Student Center.
| 21 August 2012 | Updated |