Accessibility statement

Scientific Supercomputing - PHY00052M

« Back to module search

  • Department: Physics
  • Credit value: 20 credits
  • Credit level: M
  • Academic year of delivery: 2023-24
    • See module specification for other years: 2024-25

Module summary

The aim of this module is to introduce you to the key ideas of high performance scientific computing (HPC) and supercomputers, how to use them and how to write parallel software to solve physics problems. It will show how the historical developments in HPC have come about, how these impact on current technologies, how best to utilise these technologies for numerically intensive calculations, and what future developments are likely.

This module presumes that you already have a basic programming ability in (at least one of) Fortran or C or C++. We will NOT be teaching the basics of programming - this is a practical module in which your programming skills will be developed with a focus on speed of execution, both in serial and parallel programming

Related modules

Pre-requisites: This module presumes that you already have a basic programming ability in (at least one of) Fortran or C or C++. 

Module will run

Occurrence Teaching period
A Semester 1 2023-24

Module aims

The aim of this module is to introduce you to the key ideas of High Performance Computing (HPC) in physics and to develop parallel programming skills. The module focuses on advanced parallel programming using multicore processors (CPUs) and Graphics Processing Units (GPUs) and how to match programming methods to the underlying hardware. You will also learn how to take a problem in physics and devise, implement and test a HPC software solution.

Module learning outcomes

At the end of this module successful students will be able to:

  • Describe the different types of HPC hardware and make informed decisions as to what will be best in any particular situation

  • Create parallel software programs for solving scientific problems

  • Use simple profiling tools to identify hotspots in a code and develop strategies for overcoming the hotspots

  • Understand and operate high-performance computing systems

  • Analyse a scientific problem to determine an appropriate parallelisation strategy

  • Assess the performance and scalability of a parallel code

Module content

Hardware

  • Current state-of- the-art supercomputers
  • Introduction to hardware for a typical computer
  • Introduction to networks
  • The future of scientific computing

Software

  • Benchmarking
  • Floating point numbers
  • Introduction to programming
  • Use of tools in programming
  • Use of software profiling

Coding

  • Advanced version control
  • Collaborative software development
  • Optimizing a serial program
  • Introduction to parallel programming - how to think parallel
  • Writing a parallel program using shared memory techniques, e.g. OpenMP
  • Writing a parallel program using distributed memory techniques, e.g. MPI
  • Advanced parallel programming with Hybrid techniques, e.g. OpenMP/MPI/GPGPU
  • Parallel data input and output
  • Parallel Random Number Generation
  • GPU Programming (GPGPU)
  • High Performance Computing with C++
  • GPU hardware and data transfers
  • Custom compute Kernels and optimisation

Indicative assessment

Task % of module mark
Essay/coursework 75
Essay/coursework 0
Essay/coursework 25

Special assessment rules

Other

Indicative reassessment

Task % of module mark
Essay/coursework 75

Module feedback

'Feedback’ at a university level can be understood as any part of the learning process which is designed to guide your progress through your degree programme. We aim to help you reflect on your own learning and help you feel more clear about your progress through clarifying what is expected of you in both formative and summative assessments.

A comprehensive guide to feedback and to forms of feedback is available in the Guide to Assessment Standards, Marking and Feedback. This can be found at:

https://www.york.ac.uk/students/studying/assessment-and-examination/guide-to-assessment/

The School of Physics, Engineering & Technology aims to provide some form of feedback on all formative and summative assessments that are carried out during the degree programme. In general, feedback on any written work/assignments undertaken will be sufficient so as to indicate the nature of the changes needed in order to improve the work. Students are provided with their examination results within 25 working days of the end of any given examination period. The School will also endeavour to return all coursework feedback within 25 working days of the submission deadline. The School would normally expect to adhere to the times given, however, it is possible that exceptional circumstances may delay feedback. The School will endeavour to keep such delays to a minimum. Please note that any marks released are subject to ratification by the Board of Examiners and Senate. Meetings at the start/end of each semester provide you with an opportunity to discuss and reflect with your supervisor on your overall performance to date.

Our policy on how you receive feedback for formative and summative purposes is contained in our Physics at York Taught Student Handbook.

Indicative reading

Computer architecture for scientists : principles and performance by Andrew Chien (Cambridge University Press 2022)

Writing Scientific Software: A Guide to Good Style by S. Oliveira and D.E. Stewart



The information on this page is indicative of the module that is currently on offer. The University constantly explores ways to enhance and improve its degree programmes and therefore reserves the right to make variations to the content and method of delivery of modules, and to discontinue modules, if such action is reasonably considered to be necessary. In some instances it may be appropriate for the University to notify and consult with affected students about module changes in accordance with the University's policy on the Approval of Modifications to Existing Taught Programmes of Study.