W | L | Date | Topic | Required Reading | Suggested Reading | Note |
---|---|---|---|---|---|---|
1 | 1 | 2010-08-30 | Introduction, parallel computers | Why computer science does not matter | Slides | |
2 | 2010-09-01 | Dependence analysis | Chapter 2 Allen and Kennedy | Ruby documentation | Slides | |
2 | 3 | 2010-09-06 | ||||
4 | 2010-09-08 | |||||
3 | 5 | 2010-09-13 | ||||
6 | 2010-09-15 | Dependence testing | Slides | |||
4 | 7 | 2010-09-20 | Front end | Chapters 1-4 | Slides | |
8 | 2010-09-22 | |||||
5 | 9 | 2010-09-27 | ||||
10 | 2010-09-29 | |||||
6 | 11 | 2010-10-04 | Procedure abstraction | Chapter 6 | Chapter 7 | Slides |
12 | 2010-10-06 | Polyhedral methods (by Fangzhou Jiao) | Slides | |||
7 | 13 | 2010-10-11 | Object-oriented support | Section 7.10 | Slides | |
14 | 2010-10-13 | |||||
8 | 15 | 2010-10-18 | Introduction to optimization | Chapter 8 | Slides | |
16 | 2010-10-20 | |||||
9 | 17 | 2010-10-25 | ||||
18 | 2010-10-27 | Speculative parallelization (by Devarshi Ghoshal and Sreesudhan Ramkumar) | Slides | |||
10 | 19 | 2010-11-01 | Dataflow analysis | Chapter 9 | ||
20 | 2010-11-03 | SSA | Chapter 9 | Slides | ||
11 | 21 | 2010-11-08 | ||||
22 | 2010-11-10 | Compiling for GPUs (by Adarsh Yoga and Madhav Ramesh) | Slides | |||
12 | 23 | 2010-11-15 | SSA (contd) | Chapter 9 | Slides | |
24 | 2010-11-17 | Guest lecture: memory-related optimizations in MATLAB (by Chun-Yu Shei) | Slides | |||
13 | 25 | 2010-11-22 | Techniques for memory-hierarchy optimizations (by Chris Frisz and Janhavi Virkar) | Slides | ||
2010-11-24 | Thanksgiving break (no class) | |||||
14 | 26 | 2010-11-29 | HPCS languages (by Rhaad Rabbani and Bingjing Zhang) | Slides | ||
27 | 2010-12-01 | SSA (contd) | Chapter 9, SSA paper | SSA is functional programming | Slides | |
15 | 28 | 2010-12-06 | Applying SSA: Constant propagation | Constant propagation paper | Slides | |
29 | 2010-12-08 | Scalar optimizations, Recap | Chapter 10 | Slides1, Slides2 | ||
16 | 2010-12-17 | Project presentations, 02:45-04:45 pm, FRIDAY |
Unless noted otherwise, chapter and section numbers refer to the chapters and sections from the textbook. Some of the slides are in HTML, viewable in any standard browser. You must have Javascript enabled, which is usually enabled by default in most browsers. Navigate through the slides using arrow keys or PgUp and PgDn keys. You can toggle between slide-view and notes-view by pressing the key `t'. The slideshow should work on most modern browsers—it has been tested on Safari, Firefox, and Chrome.
Overview of the schedule
- Introduction (1 lecture)
- Parallel Computers (1 lecture)
- Scanning and Parsing (1 lecture)
- Dataflow analysis and traditional optimizations (6 lectures)
- SSA—Static Single Assignment and its applications (3 lectures)
- Dependence analysis (4 lectures)
- Scripting languages, virtual machines (3 lectures)
- Handling Object-oriented and Dynamic Features (6 lectures)
- Advanced topics, such as compiling advanced language constructs, type inference, dynamic compilation, etc. (2 lectures)
Note: The number of lectures indicated in the parentheses are approximate and only provided to give you an idea of the extent of coverage of a particular topic. The actual number of lectures devoted to a topic may vary.