Skip to navigation | Skip to main content | Skip to footer
Menu
Menu

Current postgraduate taught students

COMP60081: Fundamentals of High Performance Execution (2007-2008)

This is an archived syllabus from 2007-2008

Fundamentals of High Performance Execution
Level: 6
Credit rating: 15
Pre-requisites: No Pre-requisites
Co-requisites: No Co-requisites
Lectures: Lectures and laboratories: 1 day per week (5 weeks).
Lecturers: Len Freeman, John Gurd
Course lecturers: Len Freeman

John Gurd

Additional staff: view all staff
Timetable
SemesterEventLocationDayTimeGroup
Sem 1 w7-11 Lecture 2.15 Thu 09:00 - 17:00 -
Assessment Breakdown
Exam: 35%
Coursework: 65%
Lab: 0%

Introduction

This module introduces non-Computer Science graduates to the Fundamentals of Computer System Architecture.

Aims

The module aims to provide students with a sufficiently detailed understanding of Computer Architecture to enable them to understand the execution characteristics of scientific simulation codes.

Learning Outcomes

On completion of the module, students will
have an understanding of the essentials of serial program execution
cycle: source code -> object code -> run-time code -> hardware;
have an understanding of the effects of components of execution cycle on performance;
have an understanding of the limitations of abstraction, in particular in terms of program performance.

Assessment of Learning outcomes

An end of module 2-hour examination (35%) and group-based coursework (laboratories and a mini-project, which will include a formal presentation of the results) (65%).

Contribution to Programme Learning Outcomes

Learning outcomes (1) and (2) are assessed by examination, in the laboratory and via the mini-project, learning outcomes (3) is assessed in the laboratory and via the mini-project.

Syllabus

High level view of source code to run-time code transformation

Fundamentals of Compilation; Optimisation; Interpretation; Libraries.

High level view of run-time code to hardware transformation

Simple architectural model - one instruction at a time (issued at a constant rate), constant memory access time, performance implications.

Lower level view of source code to run-time code transformation

Formal description of program (Abstract Syntax Tree, Call Graph, Dependence Graph); Compiler Optimisations (Simple Data Dependencies, Transformations, etc.); JIT Compilation.

Lower level view of run-time code to hardware transformation

More realistic (complex) architectural model - memory hierarchy (effects of cache), multi-way instruction issue, etc, performance implications. Evaluation of real performance effects on real hardware.

Resume

Measure of performance refined from flops (floating point operations per second) to ips (instructions per second) to actual hardware performance; discussion of limitations of earlier performance measures. Performance implications of pointers vs. arrays.

Reading List

Core Text
Title: Introduction to computing systems: from bits and gates to C and beyond (2nd edition)
Author: Patt, Yale N. and Sanjay J.Patel
ISBN: 0071215034
Publisher: McGraw-Hill
Edition: 2nd
Year: 2004


Supplementary Text
Title: Computer architecture: a quantitative approach (5th edition)
Author: Hennessy, John L. and David A. Patterson
ISBN: 9780123838728
Publisher: Morgan Kaufmann
Edition: 5th
Year: 2011


Supplementary Text
Title: Compilers: principles, techniques and tools (2nd edition)
Author: Aho, Alfred V. et al
ISBN: 0321491696
Publisher: Addison-Wesley
Edition: 2nd
Year: 2007


Supplementary Text
Title: Computer organization and design: the hardware/software interface (5th edition)
Author: Patterson, David A. and John L. Hennessy
ISBN: 9780124077263
Publisher: Elsevier
Edition: 5th
Year: 2014