Rice University
COMP 522
Multi-core Computing
Fall 2019
Course Information

Time and Place: TTh 1:00pm-2:15pm, Duncan Hall 1075

Instructor: John Mellor-Crummey (johnmc@rice.edu)
Office: 3082 Duncan Hall
Office Hours: By appointment

Teaching Assistant: Keren Zhou (kz21@rice.edu)
Office: 2069 Duncan Hall
Office Hours: TBA

Class web site: http://www.cs.rice.edu/~johnmc/comp522
Textbook: None. The course will focus on reading research papers posted on the course web site.

Course Description

Over the last 15 years, 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 and single thread performance. This change represents something of a cataclysmic shift for software. In the past, application programmers painlessly rode the wave of higher clock frequencies and architectural enhancements to faster performance. With multicore processors, improvements in application performance depend upon making effective use of increasing levels of thread-level 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.

Grading Criteria

Class participation

Research papers are not always well written, sometimes make misleading claims, and occasionally contain errors. Students are expected to contribute to the discussion of the papers in class by subjecting the readings to critical analysis, asking questions, and offering observations.

Class presentations

Students will be required to plan and deliver two class or three (depending upon class enrollment) brief presentations about the research papers for a class session and lead a class discussion about the content of the papers using questions of your own and questions from your classmates. Prepared slides should:

Presenters are advised, but not required, to show their presentations to the instructor in advance. On the day of the presentation, the presenter will provide the TA and instructor with a version of the presentation suitable for posting on the class web page.

Paper evaluations

Students are required to evaluate a paper for each class session. A paper evaluation consists of

Paper evaluations will be graded for completion. A evaluation that appears as if you have not thought carefully about a paper will receive no credit; you can make it up by evaluating another future paper.

Submit paper evaluations via Qualtrics surveys. A link to each survey will be sent by email to all enrolled students. Paper evaluations are due at noon on the day prior to the class in which the paper will be discussed. Late evaluations will receive no credit.

Presentation evaluations

The ability to make engaging presentations to intelligent audiences is one of the most important skills that you need. Feedback from your peers will help you improve. Students are required to submit brief evaluations of class presentations and discussions led by other students.

A presentation evaluation consists of

Presentation evaluations are intended to be helpful. They should be frank, but never mean. Your evaluations will be kept anonymous. The instructors will combine presentation evaluations submitted and forward them to the presenters. We reserve the right to edit or suppress inappropriate or unhelpful comments.

Submit presentation evaluations via Qualtrics surveys. A link to each survey will be sent by email. To receive credit for a presentation evaluation, you should submit it by midnight two days after the presentation. Late or incomplete evaluations will receive no credit. No credit will be given for a cursory evaluation or for a presentation that the reviewer did not attend.

Absence Policies

Please notify the instructor in advance if you expect to be absent for any reason. Otherwise, your absence will count against your participation grade.

Final project

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 may be done individually or in a group (with instructor permission). Group projects will submit a single writeup that will include a description of each member's contributions to the project. 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.

By January 25, I expect to receive an email to initiate discussion of an idea for a personal or group project. A one-page prospectus of the project is due February 12.

Honor code policy

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 (http://dss.rice.edu).

Modification History
8 January 2019   Initial version