Unit name | Advanced Computational Physics |
---|---|
Unit code | PHYSM0032 |
Credit points | 10 |
Level of study | M/7 |
Teaching block(s) |
Teaching Block 4 (weeks 1-24) |
Unit director | Dr. Hanna |
Open unit status | Not open |
Pre-requisites |
Level 6 unit in computing, either PHYS38012: Computational Physics, or PHYS30009: Introduction to Computational Physics, or equivalent. |
Co-requisites |
None. |
School/department | School of Physics |
Faculty | Faculty of Science |
This unit is designed for students with an interest in computational methods who wish to learn the basics of parallel programming, and parallel computational methods for physics. The course is aimed at students with a working knowledge of either the C (C++) or Python programming languages.
Aims: To introduce concepts of high performance computing for physicists, including parallel computing and use of GPU arrays, and to gain practical experience in the use of such methods to solve physics problems. The course will be aimed at students who might go forward to research in computational physics, and would want to obtain maximum benefit from the current generation of supercomputers.
General Description: The course will consist of a set of lectures and on-line tutorials, and supported by regular drop-in sessions. Assessment will be via a mini-project. The following topics will be covered:
Mini-projects will be available in the application areas detailed above.
After taking this unit, students should have a thorough grasp of parallel computing architectures for applications in physics research, as well as parallel algorithms for linear algebra and techniques for performing physics simulations across multiple processors. They should also be aware of the scalability of these techniques and the need to tune the size of the simulation to optimise its efficiency on a given computer system. They should be able to construct a working parallel program to solve a given physical problem, and be able to critically analyse the results obtained from the program in the context of the physics being studied.
Transferable Skills: Parallel programming techniques for application in physical sciences research or in a commercial (industrial) context.
The unit is taught through a set of lectures, on-line tutorials and drop-in sessions. The lectures will cover basic ideas and algorithms for parallel computing, as well as specific applications drawn from a variety of branches of physics. The on-line tutorials will include simple exercises in parallel programming, which will be handed in for marking. Weekly drop-in sessions with a post-graduate demonstrator be used to support the on-line tutorials and the mini-project which will be used for assessment.
Formative assessment through on-line tutorials and exercises which will be submitted for marking.
Summative assessment will consist of a mini-project (100%) consisting of a copy of the student's computer program and a structured technical report (maximum 2000 words) reviewing the results obtained using it.
The following books are recommended but is not essential: