Rice University
COMP 522
Multicore Computing
Fall 2014
John Mellor-Crummey, johnmc@rice.edu, DH3082, x5179
TTh, 1:00pm-2:15pm
Duncan Hall 1075


Course Description

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 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.


Course Material


Prerequisites

COMP 320 and COMP 425, or equivalent. General knowledge of computer systems and computer architecture will be assumed.


Modification History
26 August 2014   Initial version