Teaching Responsibility

LJMU Schools involved in Delivery:

Computer Science and Mathematics

Learning Methods

Lecture

Seminar

Module Offerings

6121COMP-JAN-CTY

Aims

The aim of this module is to introduce the computational aspects of parallel and distributed computing and apply new techniques, methods and results from the rapidly-developing field of algorithms.

Learning Outcomes

1.
Justify a variety of advanced algorithmic techniques to solve problems
2.
Construct algorithms for execution in parallel and distributed settings.
3.
Analyse parallel algorithms for correctness and performance.
4.
Apply appropriate distributed and/or parallel algorithms to practical situations by taking into account tractable and intractable problems.

Module Content

Outline Syllabus:• Models of Parallel & Distributed computation: PRAM, BSP, Distributed Objects, Message Passing • Amdahl’s Law and Gustafson’s Law • Parallel Decomposition techniques (Task-based decomposition, Data-parallel decomposition) • Basic techniques: Prefix sums and doubling • Graph algorithms: Parallel computation on trees, paths, spanning trees and connected components. • Theoretical and physical topologies for parallel and distributed computing • Communication and coordination / synchronisation • P-complete, NC problems. • Distributed models and algorithms: termination, failure tolerance and distributed search. • Parallelism vs Concurrency. • Shared resource access; synchronisation, mutual exclusion, atomicity • Races and Deadlocks
Module Overview:
The aim of this module is to introduce the computational aspects of parallel and distributed computing and apply new techniques, methods and results from the rapidly-developing field of algorithms.The module combines many of the concepts taught over the course of the Computer Science Programme such as complexity theory and algorithm design, and provides important skills for work with large applications since these usually must be implemented on a parallel or distributed system, due to their memory space and speed requirements.
Additional Information:The module combines many of the concepts taught over the course of the Computer Science Programme such as complexity theory and algorithm design, and provides important skills for work with large applications since these usually must be implemented on a parallel or distributed system, due to their memory space and speed requirements.

Assessments

Centralised Exam

Report