Postgraduate Course: Compiler Optimisation (Level 11) (INFR11032)
Course Outline
School | School of Informatics |
College | College of Science and Engineering |
Credit level (Normal year taken) | SCQF Level 11 (Year 4 Undergraduate) |
Availability | Available to all students |
SCQF Credits | 10 |
ECTS Credits | 5 |
Summary | This course introduces students to modern techniques in efficient implementation of programming languages. Modern processors and systems are designed based on the assumption that a compiler will be able to effectively exploit architectural resources. This course will examine in detail techniques to exploit instruction level parallelism, memory hierarchy and higher level parallelism. It will examine classic static analysis approaches to these problems and introduce newer feedback directed and dynamic approaches to optimisation. The course work will require students to implement selected optimisations in a research compiler and critically review literature in compiler optimisation. |
Course description |
*Compiler Construction, phase order, compilation as optimisation
*Architecture costs: Parallelism and Latency in uni and multi-processors
*Architecture "independent" optimisation, dataflow analysis, lattices and fixed points
*Code generation, register allocation and scheduling in superscalar and vliw processors
*High level analysis based on dependence analysis. Intra and inter procedural analysis, whole program analysis.
*High level transformations including linear algebraic formalisation, unimodular transformations and space/time representation
*Automated parallelisation. shared and distributed memory models. Linear algebraic approach to parallelisation.
*Adaptive optimisation: Feedback directed optimisation, iterative compilation, program specialisation and dynamic compilation eg JIT, DBT
*Compiler infrastructure case studies: SUIF, Machine SUIF, JIKES
*Current themes:low power compilation, automatic compiler generation and machine learning.
Relevant QAA Computing Curriculum Sections: Compilers and Syntax Directed Tools
|
Entry Requirements (not applicable to Visiting Students)
Pre-requisites |
|
Co-requisites | |
Prohibited Combinations | |
Other requirements | This course is open to all Informatics students including those on joint degrees. For external students where this course is not listed in your DPT, please seek special permission from the course organiser.
Maths background: Basic set theory, graph theory, statistics, linear algebra
Programming background: Proficient in an imperative programming language such as C. Some experience using a scripting language. |
Information for Visiting Students
Pre-requisites | None |
High Demand Course? |
Yes |
Course Delivery Information
|
Academic year 2017/18, Available to all students (SV1)
|
Quota: None |
Course Start |
Semester 2 |
Timetable |
Timetable |
Learning and Teaching activities (Further Info) |
Total Hours:
100
(
Lecture Hours 20,
Summative Assessment Hours 2,
Programme Level Learning and Teaching Hours 2,
Directed Learning and Independent Learning Hours
76 )
|
Assessment (Further Info) |
Written Exam
75 %,
Coursework
25 %,
Practical Exam
0 %
|
Additional Information (Assessment) |
The coursework will consist of one practical compiler exercise where students will design and implement an optimisation and evaluate it on a set of benchmarks, writing a report on their work and findings.
You should expect to spend approximately 25 hours on the coursework for this course.
If delivered in semester 1, this course will have an option for semester 1 only visiting undergraduate students, providing assessment prior to the end of the calendar year. |
Feedback |
Not entered |
Exam Information |
Exam Diet |
Paper Name |
Hours & Minutes |
|
Main Exam Diet S2 (April/May) | | 2:00 | |
Learning Outcomes
On completion of this course, the student will be able to:
- Understanding of inherent computational complexity of optimisation.
- Development of optimizations via search based approaches.
- Ability to parallelise programs via systematic algorithms.
- Knowledge of dynamic and adaptive approaches to modern optimisation.
|
Reading List
* A. Aho,R. Sethi, J.D.Ullman Compilers: Priciples, Techniques and Tools.
* S. Muchnick, Advanced Compiler Design and Implementation Morgan Kaufmann 1997
* R. Allen K. Kennedy Optimizing Compilers for Modern Architectures: A
* K. D. Cooper, L. Torczon Engineering a Compiler Morgan Kaufmann 2003
* A selection of conference and journal paper as appropriate
|
Contacts
Course organiser | Mr Hugh Leather
Tel: (0131 6)50 2707
Email: |
Course secretary | Mr Gregor Hall
Tel: (0131 6)50 5194
Email: |
|
© Copyright 2017 The University of Edinburgh - 6 February 2017 8:09 pm
|