CMT106: High Performance Computing

School Cardiff School of Computer Science and Informatics
Department Code COMSC
Module Code CMT106
External Subject Code 100741
Number of Credits 20
Level L7
Language of Delivery English
Module Leader Professor David Walker
Semester Autumn Semester
Academic Year 2023/4

Outline Description of Module

This module aims to impart an understanding of the concepts and principles underpinning the discipline of high performance computing (HPC), and to apply this understanding to create HPC applications to solve practical problems.

Knowledge of the C programming language will be an advantage to students taking this module.

On completion of the module a student should be able to

  1. Describe Flynn’s taxonomy of parallel computer architectures, detail the metrics used in comparing different hardware architectures,  evaluate the trade-offs between different designs and recommend the most appropriate design to solve a given problem
  2. Explain Amdahl’s Law, parallel efficiency, and scalability.
  3. Show familiarity with the main causes of inefficiency in parallel programs and illustrate these with examples.
  4. Design and implement complex parallel programs using multithreading, shared memory and message passing constructs (MPI, OpenMP, CUDA).
  5. Estimate the time complexity and parallel efficiency of parallel programs.

 

How the module will be delivered

This module will be delivered through a combination of online readings and videos, face-to-face lectures, supervised lab sessions, example classes and tutorials, as appropriate.

 

Skills that will be practised and developed

Students will develop their ability to analyse problems and determine their suitability for HPC treatment. Students will develop their skills in parallel programming through the use of OpenMP, MPI and CUDA.

 

 

How the module will be assessed

Coursework:  the coursework will allow students to demonstrate their knowledge and practical skills and to apply the principles taught in lectures. (LO 1, 4)

Exam: a written exam (2 h) will test the student’s knowledge and understanding as elaborated under the learning outcomes. (LO 1, 2, 3, 5)

Students will be provided with reassessment opportunities in line with University regulations.

 

Assessment Breakdown

Type % Title Duration(hrs)
Written Assessment 70 High Performance Computing N/A
Practical-Based Assessment 30 Logbook Of Hpc Exercises N/A

Syllabus content

Motivation for parallelism; uses of parallel computers; types of parallelism; data decomposition.

Classification of parallel computers and Flynn’s taxonomy.

SPMD programs; shared and distributed memory.

Interconnection networks and network metrics.

Non-determinacy; load imbalance; communication overhead.

Amdahl’s Law; scalability and parallel efficiency.

Introduction to OpenMP and message passing with MPI.

GPUs and programming in CUDA.

More advanced examples of parallel programming drawn from the following:

  1. Vibrating string problem.

  2. Laplace’s equation.

  3. Molecular dynamics.

  4. Cellular automata.

  5. Matrix multiplication.

  6. Sorting.


Copyright Cardiff University. Registered charity no. 1136855