Postgraduate Course: Performance Programming (PGPH11082)
Course Outline
| School | School of Physics and Astronomy | 
College | College of Science and Engineering | 
 
| Course type | Standard | 
Availability | Not available to visiting students | 
 
| Credit level (Normal year taken) | SCQF Level 11 (Postgraduate) | 
Credits | 10 | 
 
| Home subject area | Postgraduate (School of Physics and Astronomy) | 
Other subject area | None | 
   
| Course website | 
None | 
Taught in Gaelic? | No | 
 
| Course description | 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 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)
| Pre-requisites | 
 It is RECOMMENDED that students have passed   
HPC Architectures (PGPH11080)  
  | 
Co-requisites |  | 
 
| Prohibited Combinations |  | 
Other requirements |  None | 
 
| Additional Costs |  None | 
 
 
Course Delivery Information
| Not being delivered |   
Summary of Intended Learning Outcomes 
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. | 
 
 
Assessment Information 
| 100% Coursework |  
 
Special Arrangements 
| None |   
 
Additional Information 
| Academic description | 
Not entered | 
 
| Syllabus | 
Not entered | 
 
| Transferable skills | 
Not entered | 
 
| Reading list | 
Not entered | 
 
| Study Abroad | 
Not entered | 
 
| Study Pattern | 
Not entered | 
 
| Keywords | PFP | 
 
 
Contacts 
| Course organiser | Dr Stephen Booth 
Tel:  
Email:  | 
Course secretary |  Yuhua Lei 
Tel: (0131 6) 517067 
Email:  | 
   
 
 | 
 |