Parallel Programming

School of Computer Science

College of Engineering and Physical Sciences


Code 24450

Level of study Third/Final year

Credit value 10

Semester 2

Other pre-requisites None. Some familiarity with the Haskell programming language would be helpful.

Module description

This module covers the basics of programming 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.

Teaching and learning methods

2 hrs/week lectures; 2 hrs/week practical sessions