Parallel Computing
| Code | School | Level | Credits | Semesters |
| COMP3046 | Computer Science | 3 | 10 | Spring Malaysia |
- Code
- COMP3046
- School
- Computer Science
- Level
- 3
- Credits
- 10
- Semesters
- Spring Malaysia
Summary
A simple sequential computer program effectively executes one instruction at a time on individual data items. Various strategies are used in CPU design to increase the speed of this basic model, but at the cost of CPU complexity and power-consumption. To further increase performance the task must be re-organised to explicitly execute on multiple processors and/or on multiple data items simultaneously This module charts the broad spectrum of approaches that are used to increase the performance of computing tasks by exploiting parallelism and/or distributed computation. It then considers in more detail a number of contrasting examples. The course deals mainly with the principles involved, but there is the chance to experiment with some of these approaches in the supporting labs. Topics covered include: common applications of parallel computing; parallel machine architectures including Single Instruction Multiple Data (SIMD) or short-vector processing; multi-core and multi-processor shared memory; custom co-processors including DSPs and GPUs, and cluster and grid computing; programming approaches including parallelising compilers; explicit message-passing (such as MPI); and specialised co-processor programming (such as for GPUs).
Target Students
Part II undergraduate and MSc students in the School of Computer Science. Also available to students from other Schools with the agreement of the module convenor.This module is part of the Operating Systems and Networks theme in Computer Science.
Classes
- One 2-hour lecture each week for 12 weeks
- One 1-hour computing each week for 12 weeks
Activities may take place every teaching week of the Semester or only in specified weeks. It is usually specified above if an activity only takes place in some weeks of a Semester
Assessment
- 100% Exam 1 (2-hour): Two Hour Written Examination
Educational Aims
The module aims to equip students to identify, select and make use of various parallel and distributed computing approaches to increasing the performance of a range of computational tasks. The emphasis is on high-performance and high-throughput applications.Learning Outcomes
Knowledge and Understanding: The practice of parallel programming for a range of architectures and approaches.
The strengths and weaknesses of various approaches to increasing task performance through parallelism.
The synergy of hardware and software in parallel computer systems implementation.
Intellectual Skills: Think independently while giving due weight to the arguments of others in approaches to parallelism.
Understand complex ideas and relate them to specific problems or questions in the area of parallel computation.
Professional/Practical Skills: Evaluate available parallel programming approaches, and select those which are fit for purpose within a given domain.
Transferable/Key Skills: Solve problems. Communicate effectively in writing. Retrieve information from appropriate sources (e.g. API, instruction set and compiler documentation).
Conveners
- Mr Krishnan Selvaraj