Scientific Supercomputing - PHY00052M
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 2024-25 |
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 | 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