Instructor | When & Where |
---|---|
Angelina Lee Office hours: Tuesday 5:30-6:30pm, Jolley 516 |
Tuesday / Thursday, 4-5:30pm Cupple II 230 |
Link to Piazza
piazza.com/wustl/spring2018/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 | Tuesday | Wednesday | Thursday | Friday |
Jan 15 |
Jan 16 Intro to multicore computing and course overview |
Jan 17 |
Jan 18 Task parallelism, dag model, work and span |
Jan 19 |
Jan 22 |
Jan 23 Parallel matrix multiplication and its analysis |
Jan 24 |
Jan 25 Parallel merge sort and dynamic programming |
Jan 26 Assigned: Project 1 |
Jan 29 |
Jan 30 Concurrent programming 101 |
Jan 31 |
Feb 01 Building a lock-based data structure (in-class lab) |
Feb 02 |
Feb 05 |
Feb 06 Cilk's work-stealing scheduler |
Feb 07 |
Feb 08 Compilation of Cilk Plus |
Feb 09 Due: Project 1 |
Feb 12 |
Feb 13 Management of Full Frames and work-first principle |
Feb 14 |
Feb 15 Support for cactus stack |
Feb 16 Assigned: Project 2 (Sunday) |
Feb 19 |
Feb 20 Snoopy cache coherence protocol |
Feb 21 |
Feb 22 Working with runtime code (in-class lab) |
Feb 23 |
Feb 26 |
Feb 27 Group work in class (instructor out of town) |
Feb 28 |
Mar 01 Group work in class (instructor out of town) |
Mar 02 |
Mar 05 |
Mar 06 Directory-based cache coherence protocol |
Mar 07 |
Mar 08 Performance study 101 |
Mar 09 Due: Project 2 |
Mar 12 Assigned: Reading #1 |
Mar 13 No Class: Happy Spring Break! |
Mar 14 Assigned: Project 3 |
Mar 15 No Class: Happy Spring Break! |
Mar 16 |
Mar 19 |
Mar 20 Performance study 101 |
Mar 21 |
Mar 22 Paper discussion: Performance engineering case study |
Mar 23 |
Mar 26 |
Mar 27 Performance engineering case study (cont) and Hardware memory model |
Mar 28 Due: Project 3 Assigned: Final project |
Mar 29 Hardware memory model and Language memory model |
Mar 30 |
Apr 02 |
Apr 03 Due: Final project proposal Exam review and Language memory model |
Apr 04 |
Apr 05 In-class exam |
Apr 06 |
Apr 09 |
Apr 10 Lock-free synchronization |
Apr 11 |
Apr 12 Class cancelled; group work in class |
Apr 13 |
Apr 16 Assigned: Reading #2 Reading #3 |
Apr 17 Group work in class (instructor out of town) |
Apr 18 |
Apr 19 Paper discussion: Storage allocator for multithreaded code |
Apr 20 |
Apr 23 |
Apr 24 Final project presentation |
Apr 25 |
Apr 26 Final project presentation |
Apr 27 |