Skip to main content

Unit information: Advanced Computational Physics in 2021/22

Please note: you are viewing unit and programme information for a past academic year. Please see the current academic year for up to date information.

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

Description including Unit Aims

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:

  • Parallel computer architectures; memory access and memory sharing; CPU versus GPU based systems and heterogeneous systems.
  • Parallel algorithms for linear algebra; parallel dense matrix-vector products; parallel sparse matrix-vector products; block algorithms; scalability.
  • Parallel methods in physics simulations; domain decomposition; load balancing and system tuning.

Application examples:

  • parallel fast Fourier transform;
  • parallel integration schemes for many body problems (molecular dynamics or Newtonian gravity problems);
  • hierarchical tree methods for many body problems;
  • parallel Markov-chain Monte Carlo methods;
  • lattice-based simulations e.g. Lattice Boltzmann flow simulators;
  • efficient nearest-neighbour searching in molecular and astronomical systems.

Mini-projects will be available in the application areas detailed above.

Intended Learning Outcomes

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.

Teaching Information

The unit will be taught through a combination of

  • asynchronous online materials, including narrated presentations and worked examples
  • synchronous group problems classes, workshops, tutorials and/or office hours
  • asynchronous directed individual formative exercises and other exercises
  • guided, structured reading

Assessment Information

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.

Resources

If this unit has a Resource List, you will normally find a link to it in the Blackboard area for the unit. Sometimes there will be a separate link for each weekly topic.

If you are unable to access a list through Blackboard, you can also find it via the Resource Lists homepage. Search for the list by the unit name or code (e.g. PHYSM0032).

How much time the unit requires
Each credit equates to 10 hours of total student input. For example a 20 credit unit will take you 200 hours of study to complete. Your total learning time is made up of contact time, directed learning tasks, independent learning and assessment activity.

See the Faculty workload statement relating to this unit for more information.

Assessment
The Board of Examiners will consider all cases where students have failed or not completed the assessments required for credit. The Board considers each student's outcomes across all the units which contribute to each year's programme of study. If you have self-certificated your absence from an assessment, you will normally be required to complete it the next time it runs (this is usually in the next assessment period).
The Board of Examiners will take into account any extenuating circumstances and operates within the Regulations and Code of Practice for Taught Programmes.

Feedback