Skip to main content

Module

CSC3324 : Understanding Concurrency

  • Offered for Year: 2020/21
  • Module Leader(s): Dr Victor Khomenko
  • Teaching Assistant: Mr Chris Napier
  • Owning School: Computing
  • Teaching Location: Newcastle City Campus
Semesters
Semester 1 Credit Value: 10
ECTS Credits: 5.0

Aims

Sequential systems belong to the last millennium. Concurrent systems, on the other hand, are fast becoming ubiquitous technology of modern times, from multi-core processors to heterogeneous distributed computer network to Web servers and services, to genetic regulatory networks, to biochemical models of living cells. All these seemingly different application areas are in fact underpinned by a unifying principle of computational processes interacting and communicating in order to achieve a common computational goal.

The principal aim of this module is to develop an understanding of this unifying principle and the ways in which concurrency can be modelled and harnessed to deliver correct, reliable and efficient designs. Fundamental concepts of concurrency as well as modelling techniques will be introduced using Petri nets (a graphical model extending finite state machines with concurrency). The key ideas will be further explored and reinforced through several examples of applications as well as practical work implemented using state-of-the-art modelling tools developed at Newcastle. The material should equip students with confidence based on a solid understanding of the complexity and inherent intricacies of concurrent designs, in order to successfully tackle the most advanced and challenging computing technologies which will emerge during a student’s career.

Outline Of Syllabus

- Introduction: The ubiquity of concurrent systems, their role in modern technology, considerations for deploying concurrency, and the challenge of developing correct concurrent systems.
- Languages and Traces as a formal representation of behaviour of reactive systems.
- Finite State Machines as a formal representation of behaviour, with the use of interleaving to represent concurrency.
- Petri nets as a "true concurrency" formalism for representing concurrent behaviours.
- Compositionality as the only practical way of constructing large systems.
- Formal verification of concurrent systems.
- Concurrency in electronic circuits.
- Concurrent computation: Amdahl’s law vs. Gustafson’s law, taxonomies, types of concurrency, synchronisation primitives.
- Pipelines and their analysis and optimisation.
- Tool Support: visualization, simulation, and formal verification.
- Case studies illustrating model based design.

Teaching Methods

Module leaders are revising this content in light of the Covid 19 restrictions.
Revised and approved detail information will be available by 17 August.

Assessment Methods

Module leaders are revising this content in light of the Covid 19 restrictions.
Revised and approved detail information will be available by 17 August.

Reading Lists

Timetable