Course overview
A selection of topics from the following: the challenges faced in constructing parallel and distributed applications, including testing, debugging and performance evaluation. Various implementation techniques, paradigms, architectures and programming languages including: Flynn's taxonomy, MPI, MapReduce, OpenMP, GPGPU, concurrency and multi-threading.
Course learning outcomes
- Develop and apply knowledge of parallel and distributed computing techniques and methodologies.
- Gain experience in the design, development, and performance analysis of parallel and distributed applications.
- Gain experience in the application of fundamental Computer Science methods and algorithms in the development of parallel applications.
- Gain experience in the design, testing, and performance analysis of a software system, and to be able to communicate that design to others.