798 Multicore programming

Instructor: Trevor Brown
E-mail: trevor (dot) brown (at) uwaterloo (dot) ca
Times: MW 3:30-4:50, DC 2585
Course syllabus

Course materials

Class Topics Slides Supplementary material
Week 1 - Monday Asynchronous shared memory, counters, linearizability, cache coherence, false sharing PowerPoint Paper that introduced Linearizability
A few slides on cache coherence (Technion)
Week 1 - Wednesday More on padding, lock-freedom, lock-free stack (& proof sketch) PowerPoint Treiber stack (original paper)
Optional: a later stack technique (elimination)
Optional: even later stacks
Optional: hazard pointers (memory reclamation)
Optional: Treiber stack with hazard pointers for memory reclamation
Week 2 - Monday Stacks, queues, relaxed data structures, hash tables Powerpoint Optional: first lock-free queue
Optional: newer queues
Optional: Multi-Queue paper (mostly about graphs)
Week 2 - Wednesday Hash tables and deletion Powerpoint Expandable hash table we are studying
Week 3 - Monday Expanding a hash table (Same hash table paper as last class)

Assignments

I am hoping to post the first assignment in a week or so (in the third week of classes)...

Paper presentations

Student paper presentations should begin in the 7th week. I'll start preparing a list of possible topics and/or papers here, soon. For now, consider taking a look at the topics on the syllabus and thinking about what you might be interested to read about and present.