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
- Apply design, development, and performance analysis of parallel and distributed applications
- Use the application of fundamental Computer Science methods and algorithms in the development of parallel applications
- Explain the design, testing, and performance analysis of a software system, and to be able to communicate that design to others