Module 22755 (2012)

Module Description - Parallel Programming (Extended)

The Module Description is a strict subset of the Syllabus Page, which gives more information

Module TitleParallel Programming (Extended)
SchoolComputer Science
Module Code06-22755
DescriptorCOMP/06-22755/LM
Member of StaffDan Ghica
LevelM
Credits10
Semester2
Pre-requisitesNone. Some familiarity with the Haskell programming language would be helpful.
Co-requisites06-23635 (Operating Systems with C/C++ (Extended)) or equivalent.
RestrictionsMay not be taken by anyone who has taken or is taking 06-24450 (Parallel Programming)
Contact hours35
Delivery2 hrs/week lectures; 2 hrs/week practical sessions
Description This module covers the programming of massively parallel architectures such as graphics processing units (GPUs), multi-cores and field-programmable gate arrays (FPGAs). The module is focussed on the architecture of such devices and their use in speeding-up common computational tasks. Recent developments in such architectures made this task substantially easier and newly available programming tools allow for high-level straightforward programming of these systems. The module will provide a largely practical introduction to the topic. Lectures will address the basic architectural principles of modern parallel architectures and relevant algorithms and programming techniques. Students will be expected to develop a research-informed critical approach to understanding parallel architectures and techniques.
Outcomes
On successful completion of this module, the student should be able to:Assessed by:
describe and explain modern parallel architectures Examination
describe and explain applications of parallel programming Examination
describe and explain parallel programming models Examination
design simple parallel algorithms Examination and coursework
implement more advanced parallel algorithms Coursework
demonstrate a research-informed critical understanding of parallel architectures and parallelization techniques Report
AssessmentSessional: 1.5 hr examination (50%), continuous assessment (coursework and report) (50%). Both the examination and the continuous assessment are internal hurdles; students must pass both in order to pass the module
Supplementary (where allowed): By examination only (100%)

TextsPeter Thoman, Multigrid Methods on GPUs,
Hubert Nguyen, GPU Gems 3: Programming Techniques for High-Performance Graphics and General-Purpose Computation,