Distributed and Parallel Technologies (H) COMPSCI4082

  • Academic Session: 2019-20
  • School: School of Computing Science
  • Credits: 10
  • Level: Level 4 (SCQF level 10)
  • Typically Offered: Semester 1
  • Available to Visiting Students: Yes
  • Available to Erasmus Students: Yes

Short Description

This course aims to develop in students a better understanding of the computing science challenges posed by the dominant highly concurrent architectures. These include engineering scalable and reliable systems. Students will gain both a broad overview of emerging technologies for engineering reliable and scalable systems, together with practical experience using a small number of key technologies for designing, implementing and evaluating scalable parallel systems and reliable distributed systems.

Timetable

Three hours per week

Requirements of Entry

Systems Programming (Mandatory)

Excluded Courses

Distributed and Parallel Technologies (M)

Co-requisites

None

Assessment

Examination 80%, coursework 20%.

 

Students are asked to submit a programming-based assessed coursework to implement a simple scalable or reliable system, embracing practical concepts covered in the course.

Main Assessment In: April/May

Are reassessment opportunities available for all summative assessments? No

Reassessments are normally available for all courses, except those which contribute to the Honours classification. For non-Honours courses, students are offered reassessment in all or any of the components of assessment if the satisfactory (threshold) grade for the overall course is not achieved at the first attempt. This is normally grade D3 for undergraduate students and grade C3 for postgraduate students. Exceptionally it may not be possible to offer reassessment of some coursework items, in which case the mark achieved at the first attempt will be counted towards the final course grade. Any such exceptions for this course are described below. 

 

The coursework cannot be redone because it is impossible to generate an equivalent piece of coursework which replicates the original one because of the follow-up work which was done subsequent to the original submission. The nature of the coursework is such that it takes a significant number of days to produce it and this effort is infeasible for supporting the re-doing of such coursework over the summer.

Course Aims

The many core revolution means that almost all hardware platforms contain multiple cores, and that the architectures evolve rapidly as the number of cores increases.

 

Software on such platforms must be 

 

Scalable: emergent computing platforms operate at unprecedented scale, with commodity servers already commonly comprising hundreds of hosts, tens of thousands of cores, and thousands of storage devices. The trend towards large distributed systems is driven by Moore's law and is powering transformative developments in areas like sensor networks, the Internet of Things, and big data infrastructures and analytics.

 

Reliable: systems must tolerate and recover from hardware, software and network failures. Moreover the semantics of highly concurrent and fault tolerant systems is complex, and specialised techniques are required to reasoning about these systems so as to be confident that they are reliable in the sense of being correct.

 

This course aims to provide both a broad overview of emerging technologies for engineering reliable and scalable systems, together with practical experience using a small number of key technologies for designing, implementing and evaluating scalable parallel systems and reliable distributed systems.

Intended Learning Outcomes of Course

By the end of the course students will be able to:

1. Articulate the key computing science challenges posed by many core architectures, the technologies available to address them, and the challenges of building reliable and scalable systems;

2. Design and implement simple parallel applications on shared and distributed memory architectures;

3. Evaluate the scaling properties of simple parallel applications;

4. Design and implement simple reliable distributed applications, selecting appropriately from various families of algorithm used in distributed systems, based on specific system requirements;

5. Evaluate the reliability properties of simple distributed applications.

Minimum Requirement for Award of Credits

Students must submit at least 75% by weight of the components (including examinations) of the course's summative assessment.