Paul Kelly: Compilers II (advanced)
Lecture notes are available on the web
here.
(this is Chapter 5 of the Parallel Architectures course, which supercedes the original material here).
Note that these may not be fully up to date until paper copies are actually d
istributed.
Tutorial exercises are available on the web
here.
Note that these may not be fully up to date until paper copies are actually d
istributed.
These web pages are the on-line component of a 6-lecture course on
parallelising and restructuring compilers. It
introduces the issues and techniques involved in generating
high performance code for sophisticated computer architectures
by "restructuring" the program to expose parallelism and/or
optimise locality.
Until 1996, this formed part of the fourth-year/MAC course
"Compilers II" (419).
- Objectives
- To motivate the techniques like loop interchange
and tiling by examining the performance
characteristics of a selection of modern architectures
- To introduce dependence analysis of subscript
expressions in loops
- To introduce the use of unimodular transformation
matrices to represent, manipulate and evaluate
alternative loop nest formulations
- Level of students
-
This is a component of a second-level fourth-year undergraduate course
organised by Dr Sophia Drossopoulou. The material builds
on the Dragon book and Wolfe's textbook and includes
research-level material.
Textbook
High Performance Compilers for Parallel Computing by Michael Wolfe
(Addison Wesley, 1996).