F21DP - Distributed & Parallel Technologies
Course leader(s):
Syllabus
1. Foundations of sequential and parallel programming; the role of sequential host languages in the context of distributed and parallel technologies.
2. Distributed Technologies: Distribution concepts; low-level, mid-level and high-level distributed technologies; emerging distribution and coordination technologies.
3. Parallel Technologies: Design of parallel systems, parallel performance analysis; programming heterogeneous systems; practical imperative parallel programming; practical declarative parallel programming.
Learning outcomes
By the end of the course, students should be able to do the following:
- Construct practical distributed and parallel systems using both declarative and imperative languages using contemporary techniques and modern technologies.
- Tune the performance of parallel code using appropriate profiling tools and optimisation methodologies.
- Apply knowledge of control and data abstraction in software design and implementation.
- Contrast imperative and declarative models of parallelism with regards to the advantages and disadvantages of each.
- Evaluate generated parallel performance graphs from executions of different parallel programming models on multiple hardware architectures.
- Develop original and creative parallel problem solutions from algorithmic specifications.
- Show initiative, creativity and team working skills in collaborative distributed and parallel application development.
- Reflect on core concepts and technologies in relation to the applicability of, and limitations to, parallel and distributed systems.
Further details
Curriculum explorer: Click here
SCQF Level: 11
Credits: 15