W L Date Topic Required Reading Suggested Reading Note
112010-08-30Introduction, parallel computersWhy computer science does not matterSlides
22010-09-01Dependence analysisChapter 2 Allen and KennedyRuby documentationSlides
232010-09-06
42010-09-08
352010-09-13
62010-09-15Dependence testingSlides
472010-09-20Front endChapters 1-4Slides
82010-09-22
592010-09-27
102010-09-29
6112010-10-04Procedure abstractionChapter 6Chapter 7Slides
122010-10-06Polyhedral methods (by Fangzhou Jiao)Slides
7132010-10-11Object-oriented supportSection 7.10Slides
142010-10-13
8152010-10-18Introduction to optimizationChapter 8Slides
162010-10-20
9172010-10-25
182010-10-27Speculative parallelization (by Devarshi Ghoshal and Sreesudhan Ramkumar)Slides
10192010-11-01Dataflow analysisChapter 9
202010-11-03SSAChapter 9Slides
11212010-11-08
222010-11-10Compiling for GPUs (by Adarsh Yoga and Madhav Ramesh)Slides
12232010-11-15SSA (contd)Chapter 9Slides
242010-11-17Guest lecture: memory-related optimizations in MATLAB (by Chun-Yu Shei)Slides
13252010-11-22Techniques for memory-hierarchy optimizations (by Chris Frisz and Janhavi Virkar)Slides
2010-11-24Thanksgiving break (no class)
14262010-11-29HPCS languages (by Rhaad Rabbani and Bingjing Zhang)Slides
272010-12-01SSA (contd)Chapter 9, SSA paperSSA is functional programmingSlides
15282010-12-06Applying SSA: Constant propagationConstant propagation paperSlides
292010-12-08Scalar optimizations, RecapChapter 10Slides1, Slides2
162010-12-17Project 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

  1. Introduction (1 lecture)
  2. Parallel Computers (1 lecture)
  3. Scanning and Parsing (1 lecture)
  4. Dataflow analysis and traditional optimizations (6 lectures)
  5. SSA—Static Single Assignment and its applications (3 lectures)
  6. Dependence analysis (4 lectures)
  7. Scripting languages, virtual machines (3 lectures)
  8. Handling Object-oriented and Dynamic Features (6 lectures)
  9. 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.