GPU & Distributed Programming
Rhedir gan School of Computer Science and Electronic Engineering
20.000 Credyd neu 10.000 Credyd ECTS
Trefnydd: Dr Franck Vidal
- To introduce to the principles and practice of parallel and concurrent programming on modern High Performance Computing (HPC) architectures (both CPU and GPU) (both distributed memory and shared memory).
- To be to design algorithms running on parallel architectures.
- To implement algorithms running on a specific parallel architecture.
Indicative content includes:
- Comparison between shared memory and distributed memory
- Comparison between processors architectures (inc. SIMD, MIMD, and SIMT). It will cover multi-core processors (i.e. CPUs) and many-core processors (e.g. GPUs)
- Fundamental concepts of concurrent programming, including: threads, shared variables, critical regions, atomics, semaphores, race conditions, deadlock
- Practice of parallel programming:
- Design of algorithms that use the architecture effectively
- Implementation of such algorithms using industry-standard tools and APIs, eg. CUDA, MPI, Vulcan, C++.
- Validation of the results produced by such algorithms
Equivalent to the range 70%+. Assemble critically evaluated, relevent areas of knowledge and theory to constuct professional-level solutions to tasks and questions presented. Is able to cross-link themes and aspects to draw considered conclusions. Presents outputs in a cohesive, accurate, and efficient manner.
Equivalent to the range 60%-69%. Is able to analyse a task or problem to decide which aspects of theory and knowledge to apply. Solutions are of a workable quality, demonstrating understanding of underlying principles. Major themes can be linked appropriately but may not be able to extend this to individual aspects. Outputs are readily understood, with an appropriate structure but may lack sophistication.
Equivalent to 50%. Uses key areas of theory or knowledge to meet the Learning Outcomes of the module. Is able to formulate an appropriate solution to accurately solve tasks and questions. Can identify individual aspects, but lacks an awareness of links between them and the wider contexts. Outputs can be understood, but lack structure and/or coherence.
Differentiate the different parallel programming models, typified by memory issues.
Recognise and describe components of HPC systems.
Compare and contrast different processor architectures.
Construct parallelised programs on both multi-core (CPUs) and many-core (GPUs) architectures using industry standards.
Strategaeth addysgu a dysgu
2 hours per tutorial/lecture per week
1x2 hours a week
- Rhifedd - Medrusrwydd wrth ddefnyddio rhifau ar lefelau priodol o gywirdeb
- Defnyddio cyfrifiaduron - Medrusrwydd wrth ddefnyddio ystod o feddalwedd cyfrifiadurol
- Hunanreolaeth - Gallu gweithio mewn ffordd effeithlon, prydlon a threfnus. Gallu edrych ar ganlyniadau tasgau a digwyddiadau, a barnu lefelau o ansawdd a phwysigrwydd
- Archwilio - Gallu ymchwilio ac ystyried dewisiadau eraill
- Dadansoddi Beirniadol & Datrys Problem - Gallu dadelfennu a dadansoddi problemau neu sefyllfaoedd cymhleth. Gallu canfod atebion i broblemau drwy ddadansoddiadau ac archwilio posibiliadau
Sgiliau pwnc penodol
- Identify emerging technologies and technology trends;
- Solve problems logically and systematically;
- Analyse and display data using appropriate methods and mathematical techniques;
- Demonstrate familiarity with relevant subject specific and general computer software packages.
- Problem solving strategies
- Deploy theory in design, implementation and evaluation of systems
- Specify, design or construct computer-based systems
- Knowledge and/or understanding of appropriate scientific and engineering principles
- Knowledge and understanding of mathematical principles
- Knowledge and understanding of computational modelling
Cyrsiau sy’n cynnwys y modiwl hwn
Gorfodol mewn cyrsiau:
- H617: MEng Computer Systs Eng (4 yrs) year 4 (MENG/CSE)
- H61P: Computer Systems Engineering with Industrial Placement year 5 (MENG/CSEP)