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.
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.