Module 06-32221 (2019)
Distributed and Parallel Computing
Level 3/H
Alan Sexton | Semester 1 | 20 credits |
Co-ordinator: Alan Sexton
Reviewer: Dan Ghica
The Module Description is a strict subset of this Syllabus Page.
Outline
In this module the key concepts at the basis of the design of multicore parallel programming, data-parallel General Purpose GPU (GPGPU) programming and distributed algorithms and systems are introduced. A heavily practical approach is taken and students will be developing sophisticated high-performance parallel and distributed programs as part of the module.
Aims
The aims of this module are to:
- Introduce the key concepts at the basis of the design of distributed algorithms and systems
- Review the state-of-the-art in distributed systems and analyse the current trends in research and industry
- Provide a sound introduction to parallel and distributed programming paradigms
Learning Outcomes
On successful completion of this module, the student should be able to:
- describe and justify the main types of architectures and mechanisms of communication in distributed and parallel systems
- describe and understand how hardware issues affect the design and implementation of distributed and parallel systems
- demonstrate the ability to implement, analyse and criticise algorithms and approaches for distributed and parallel systems
- demonstrate understanding of the theoretical concepts and abstractions discussed in the module to the design of novel and innovative distributed and parallel systems
- employ the underlying concepts and engineering issues involved in the real-world implementation of distributed and parallel systems in solving practical problems
Taught with
- 06-32230 - Distributed and Parallel Computing (Extended)
Teaching methods
Large-Group Lectures
Contact Hours:
34
Assessment
Sessional: 2 hr Examination (80%) Continuous Assessment (20%)
Supplementary (where allowed): 2 hr Examination (100%)
Detailed Syllabus
- Working as a team
- GPU architectures
- Programming in CUDA
- The CUDA memory and thread models
- Parallel programming concepts
- Introduction to distributed programming
- Programming in ERLANG
- Introduction to the theory of distributed systems
- Cloud computing
Programmes containing this module
- BSc Artificial Intelligence & Computer Science [0144]
- BSc Artificial Intelligence & Computer Science with an Industrial Year [9502]
- BSc Artificial Intelligence & Computer Science with Study Abroad [452B]
- BSc Computer Science [4436]
- BSc Computer Science with an Industrial Year [9499]
- BSc Computer Science with Business Management [5914]
- BSc Computer Science with Business Management with an Industrial Year [9503]
- BSc Computer Science with Study Abroad [5571]
- BSc Mathematics and Computer Science [5196]
- BSc Mathematics and Computer Science with an Industrial Year [9495]
- MEng Computer Science/Software Engineering [4754]
- MEng Computer Science/Software Engineering with an Industrial Year [9501]
- MSci Computer Science [4443]
- MSci Computer Science with an Industrial Year [9509]
- MSci Computer Science with Study Abroad [5576]
- MSci Mathematics and Computer Science [5197]
- MSci Mathematics and Computer Science with an Industrial Year [9496]