Postgraduate Course: Performance Programming (INFD11021)
Course Outline
School | School of Informatics |
College | College of Science and Engineering |
Credit level (Normal year taken) | SCQF Level 11 (Postgraduate) |
Course type | Online Distance Learning |
Availability | Not available to visiting students |
SCQF Credits | 10 |
ECTS Credits | 5 |
Summary | Application performance is one of the key requirements for HPC applications. However this is one of the more difficult requirements to satisfy:
- Issues effecting performance often vary between different hardware and software environments. This requires performance issues to be frequently re-visited as the hardware and software environment changes.
- Performance programming requires detailed knowledge of the underlying environment
- The design decisions necessary to achieve good performance are often in conflict with other desirable properties of the program.
After taking this course students should have a good practical understanding of the general issues and methodologies associated with designing building and refactoring codes to meet performance requirements. In addition they will have an overview of a number of subjects that are important in the understanding of performance on current systems. |
Course description |
The course will cover the following topics:
- Overview of performance programming. Methodology, the optimisation cycle.
- Designing for performance. Encapsulation as an aid to performance tuning.
- Tools for performance programming. Profilers and code instrumentation.
- Compilers and compiler optimisation.
- Memory hierarchies, Memory structures and associated optimisations.
- Performance tuning for shared memory.
- Floating point performance. Pipelines, SIMD, vectorisation.
|
Entry Requirements (not applicable to Visiting Students)
Pre-requisites |
|
Co-requisites | |
Prohibited Combinations | |
Other requirements | None |
Course Delivery Information
|
Academic year 2021/22, Not available to visiting students (SS1)
|
Quota: None |
Course Start |
Semester 1 |
Course Start Date |
20/09/2021 |
Timetable |
Timetable |
Learning and Teaching activities (Further Info) |
Total Hours:
100
(
Online Activities 30,
Programme Level Learning and Teaching Hours 2,
Directed Learning and Independent Learning Hours
68 )
|
Assessment (Further Info) |
Written Exam
0 %,
Coursework
100 %,
Practical Exam
0 %
|
Additional Information (Assessment) |
100% coursework split into two submissions: worth 25% and 75% respectively. The first comprises a plan for the work to be undertaken in the second . |
Feedback |
Provided through regular weekly tutorial sessions and discussions on output of practical exercises as well as on assessed work. |
No Exam Information |
Learning Outcomes
On completion of this course, the student will be able to:
- Understand the appropriate methodology when attempting to improve code performance.
- Understand how performance is achieved via hardware, compilers and operating systems.
- Appreciate the limitations of systems and recognise when these will have a serious impact.
- Interpret the observed performance of code in terms of how its execution is realised on the system.
- Identify code regions appropriate for manual optimisation and propose, implement and evaluate optimisations on these regions.
|
Additional Information
Graduate Attributes and Skills |
Programming
Solution Exploration and Evaluation
Communication of technical information via written report
Time management
Planning, implementation, and analysis |
Keywords | Performance Programming,HPC,EPCC,Parallelism,Optimisation,Profilers,Compilers,SIMD,Vectors,Online |
Contacts
Course organiser | Mr William Jackson
Tel:
Email: Adrian.Jackson@ed.ac.uk |
Course secretary | Miss Jemma Auns
Tel: (0131 6)51 3545
Email: Jemma.Auns@ed.ac.uk |
|
|