Level of study Third/Final year
Credit value 10
Other pre-requisites None. Some familiarity with the Haskell programming language would be helpful.
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