Postgraduate Course: Performance Programming (PGPH11082)
|School||School of Physics and Astronomy
||College||College of Science and Engineering
|Credit level (Normal year taken)||SCQF Level 11 (Postgraduate)
||Availability||Not available to visiting students
|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
- 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 undertanding 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.
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 heirarchies, Memory structures and associated optimisations.
- Performance tuning for shared memory.
- Floating point performance. Pipelines,SIMD, vectorisation.
Entry Requirements (not applicable to Visiting Students)
|| It is RECOMMENDED that students have passed
HPC Architectures (PGPH11080)
||Other requirements|| None
Course Delivery Information
|Academic year 2015/16, Not available to visiting students (SS1)
|Learning and Teaching activities (Further Info)
Lecture Hours 22,
Seminar/Tutorial Hours 11,
Programme Level Learning and Teaching Hours 2,
Directed Learning and Independent Learning Hours
|Additional Information (Learning and Teaching)
Please contact the School for further information
|Assessment (Further Info)
|Additional Information (Assessment)
|No Exam Information
| On completion of this course students should 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.
|Graduate Attributes and Skills
|Course organiser||Dr Stephen Booth
Tel: (0131 6)50 5746
|Course secretary|| Yuhua Lei
Tel: (0131 6) 517067
© Copyright 2015 The University of Edinburgh - 18 January 2016 4:37 am