Postgraduate Course: Tools and Techniques for HPC Programming (PGPH11041)
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 |
|
|
Course description |
The course will be an introduction to the fundamental tools and techniques required to produce high quality scientific and technical programs in a Unix environment. The material will be applicable to C, Java and Fortran so the course can be done in any of these languages.
One important component of the course will be to teach an appreciation of the strengths and weaknesses of each language, for example, how arrays are dealt with, modular programming, OO vs procedural etc.
On completion of the MSc, all students should know at least two of these languages: this course will therefore also be an opportunity to practise the language they are least familiar with. The course will cover the the following topics:
? core Unix tools (tar, scp, editors etc)
? OS and compiler fundamentals
? version control with CVS (for a single-developer project)
? compiling multi-file programs with make and ant
? scientific codes as experiments: running and taking data
? language comparison (eg how arrays are dealt with, modular programming, OO vs procedural)
? measuring performance
? good programming practice and basic software design
? use of scientific libraries
? testing and debugging
These concepts will be illustrated by students working on the development of a practical programming example. Lectures will be followed by tutored practical sessions illustrating the key concepts.
|
Entry Requirements
Pre-requisites |
|
Co-requisites |
|
Prohibited Combinations |
|
Other requirements |
Only postgraduates or final year MPhys students with suitable computational background, subject to space restrictions and agreement with relevant Programme Coordinator.
|
Additional Costs |
None |
Course Delivery Information
|
Delivery period: 2010/11 Semester 1, Not available to visiting students (SS1)
|
WebCT enabled: Yes |
Quota: None |
Location |
Activity |
Description |
Weeks |
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
King's Buildings | Lecture | | 1-11 | | | 09:00 - 13:00 | | |
First Class |
First class information not currently available |
Summary of Intended Learning Outcomes
On completion of this course students should be able to:
- Develop code in a Univx environment and understand the stages involved;
- Write programs using a modular approach with multiple files and calls to external libraries;
- Use appropriate tools to build multi-file programs;
- Use CVS to manage their source code from a single repository;
- Write codes using a defensive style of programming to minimise bugs;
- Test and debug programs using a systematic and methodical approach;
- Describe the relative strengths and weaknesses of C, Java and Fortran;
- Quantify the performance of their own codes;
- Collect "experimental" data from simulation codes. |
Assessment Information
100% Group-based Coursework |
Special Arrangements
Not entered |
Contacts
Course organiser |
Dr Judy Hardy
Tel: (0131 6)50 6716
Email: j.hardy@ed.ac.uk |
Course secretary |
Yuhua Lei
Tel: (0131 6) 517067
Email: yuhua.lei@ed.ac.uk |
|
copyright 2010 The University of Edinburgh -
1 September 2010 6:29 am
|