Instructor | TA | When & Where |
---|---|---|
Angelina Lee Hours: Monday 5:20-6:20pm See Piazza post 122 for link |
Kyle Singer Hours: Tuesday 5:30-6:30pm See Piazza post 122 for link |
Monday / Wednesday Lecture: 4-5:20pm See Piazza post 122 for link |
Link to Piazza
piazza.com/wustl/spring2020/cse539s/home
Course Description
Nowadays, the vast majority of computer systems are built using multicore processor chips. This fundamental shift in hardware design impacts all areas of computer science --- one must write parallel programs in order to unlock the computational power provided by modern hardware. The goal of this course is to study concepts in multicore computing. We will examine the implications of the multicore hardware design, discuss challenges in writing high performance software, and study emerging technologies relevant to developing software for multicore systems. Topics include memory hierarchy, cache coherence protocol, memory models, scheduling, high-level parallel language models, concurrent programming (synchronization and concurrent data structures), algorithms for debugging parallel software, and performance analysis.
Calendar
Monday | Wednesday | Notes / Assignments |
Jan 13 Intro to multicore computing and course overview |
Jan 15 Task parallelism, dag model, work and span |
|
Jan 20 No Class: Martin Luther King Day |
Jan 22 Parallel matrix multiplication and its analysis |
Assigned: Project 1 (Jan 22) |
Jan 27 Parallel merge sort and its analysis |
Jan 29 Concurrent programming 101 |
|
Feb 03 Concurrent programming 102 |
Feb 05 Studio: concurrent linked list |
Due: Project 1 (Feb 07) |
Feb 10 Snoopy cache coherence protocol |
Feb 12 Directory-based cache coherence protocol |
Assigned: Project 2 (Feb 10) Assigned: Reading #1, Understanding NUMA |
Feb 17 Performance engineering 101 |
Feb 19 Performance engineering 102 |
Assigned: Reading #2, Cilk-5 |
Feb 24 Paper discussion: Understanding NUMA |
Feb 26 No Class: Instructor Out of Town |
Due: Project 2 (Feb 28) |
Mar 02 Paper discussion: Cilk-5 Implementation |
Mar 04 Runtime data structures and management of full frames |
Assigned: Project 3 (Mar 02) |
Mar 09 No Class: Happy Spring Break! |
Mar 11 No Class: Happy Spring Break! |
|
Mar 16 No Class: Extended Spring Break |
Mar 18 No Class: Extended Spring Break |
Assigned: Final Project (Mar 18) |
Mar 23 Compiler ABI and support for cactus stack |
Mar 25 Studio: Working with runtime code |
Assigned: Reading #3, Reducer |
Mar 30 Paper discussion: Reducer |
Apr 01 Reducer, cont and final project proposal breakout |
Due: Final project proposal (Mar 30) Due: Project 3 (Apr 03) |
Apr 06 Hardware memory model |
Apr 08 Language memory model |
Assigned: Reading #4, Scalable sync |
Apr 13 Paper discussion: Scalable sync |
Apr 15 Final project presentation |
|
Apr 20 Final project presentation |
Apr 22 Final project presentation |
Due: Final report (May 03) |