- Student Records
Programme & Unit Catalogues


CM30225: Parallel computing

Follow this link for further information on academic years Academic Year: 2020/1
Further information on owning departmentsOwning Department/School: Department of Computer Science
Further information on credits Credits: 6      [equivalent to 12 CATS credits]
Further information on notional study hours Notional Study Hours: 120
Further information on unit levels Level: Honours (FHEQ level 6)
Further information on teaching periods Period: Semester 1
Further information on unit assessment Assessment: CW 25%, EX 75%
Further information on supplementary assessment Supplementary Assessment:
CM30225 - Like for Like - except in Coursework - where evaluations in implementations (where allowed by programme regulations)
Further information on requisites Requisites: Before taking this module you must take CM20214 OR ( take CM10227 AND take CM10228 ) OR take EE10134
In order to take this unit you must be able to program in C
Further information on descriptions Description: Aims:
To give students the ability to recognise and understand the problems and opportunities afforded by parallel systems; to recognise the differing types of parallelism available and make advised choices between them; and to take advantage of progress in technology as modern computers become ever more parallel.

Learning Outcomes:
Students will be able to:
1. write and debug simple parallel programs;
2. recognise the issues surrounding concurrent access to data;
3. Describe the various kinds of parallel hardware, parallel programming methodologies and the relationship between them.

Skills:
IT (T, A).

Content:
1. Basics: supercomputers and the consequences of Moore's Law; bandwidth vs latency; speedup, efficiency, scalability; Amdahl's & Gustafson's Laws; Flynn's taxonomy, SPMD; distributed, shared, NUMA and other memory architectures.
2. Shared memory computing: multicore systems (cache coherence and bottlenecks); mutual exclusion and critical regions; low level constructs including POSIX threads and synchronisation methods such as barriers, locks, semaphores, etc.; language-level support including monitors, OpenMP; vector and array (SIMD), HPF, Cn.
3. Distributed computing: clusters, message passing, MPI. Programming using MPI (PBS).
4. Parallel algorithms and data structures.
5. Topics in Parallel Computing: examples might include HPC; MapReduce; distributed file systems; the Grid; GPGPU and OpenCL; instruction level parallelism (SWAR,VLIW).
Further information on programme availabilityProgramme availability:
NB. Postgraduate programme information will be added when the postgraduate catalogues are published in August 2020

CM30225 is Optional on the following programmes:

Department of Computer Science
  • USCM-AFB06 : BSc(Hons) Computer Science (Year 3)
  • USCM-AFB20 : BSc(Hons) Computer Science and Mathematics (Year 3)
  • USCM-AAB20 : BSc(Hons) Computer Science and Mathematics with Study year abroad (Year 4)
  • USCM-AKB20 : BSc(Hons) Computer Science and Mathematics with Year long work placement (Year 4)
  • USCM-AFB09 : BSc(Hons) Computer Science with Business (Year 3)
  • USCM-AAB10 : BSc(Hons) Computer Science with Business with Study year abroad (Year 4)
  • USCM-AKB10 : BSc(Hons) Computer Science with Business with Year long work placement (Year 4)
  • USCM-AAB07 : BSc(Hons) Computer Science with Study year abroad (Year 4)
  • USCM-AKB07 : BSc(Hons) Computer Science with Year long work placement (Year 4)
  • USCM-AFM01 : MComp(Hons) Computer Science (Year 3)
  • USCM-AFM14 : MComp(Hons) Computer Science and Mathematics (Year 3)
  • USCM-AAM14 : MComp(Hons) Computer Science and Mathematics with Study year abroad (Year 3)
  • USCM-AAM14 : MComp(Hons) Computer Science and Mathematics with Study year abroad (Year 4)
  • USCM-AKM14 : MComp(Hons) Computer Science and Mathematics with Year long work placement (Year 3)
  • USCM-AKM14 : MComp(Hons) Computer Science and Mathematics with Year long work placement (Year 4)
  • USCM-AAM02 : MComp(Hons) Computer Science with Study year abroad (Year 3)
  • USCM-AAM02 : MComp(Hons) Computer Science with Study year abroad (Year 4)
  • USCM-AKM02 : MComp(Hons) Computer Science with Year long work placement (Year 3)
  • USCM-AKM02 : MComp(Hons) Computer Science with Year long work placement (Year 4)
Department of Electronic & Electrical Engineering
  • UEEE-AFB13 : BEng(Hons) Computer Systems Engineering (Year 3)
  • UEEE-AKB13 : BEng(Hons) Computer Systems Engineering with Year long work placement (Year 4)
  • UEEE-AFM13 : MEng(Hons) Computer Systems Engineering (Year 3)
  • UEEE-AKM13 : MEng(Hons) Computer Systems Engineering with Year long work placement (Year 4)

Notes: