School of Computing

Module details

CO890 Concurrency and Parallelism (15 credits)

Introduction

Concurrent design and programming skills are of growing importance as multi-core processor technology advances. A sound understanding of fundamental concurrency concepts and obstacles is essential. This module introduces fundamental theories of concurrency. It discusses how designs can be made parallel and identifies the common faults in concurrent programs and how to avoid them. It introduces a range of widely used programming paradigms and techniques for writing concurrent programmes.

Syllabus

  • Concurrency and parallelism, and their applications to software design.
  • Identifying parallelisable problems and parallelisation techniques.
  • Parallel algorithms and how to design them.
  • Common faults in concurrent and parallel programs.
  • Complexity, performance measurement and scheduling techniques.
  • Multi-core and emerging architectures.
  • Multi-core programming paradigms:
    • Data-parallel techniques: SIMD, MIMD, vector processing and GPGPUs.
    • Shared-memory techniques: conventional threads-and-locks, structured parallelism, transactional memory.
    • Message-passing techniques: process-oriented programming, mailboxes, tuplespaces.

Note

This web page provides advance information about a module due to run in the coming academic year. We believe the details are accurate at the time of writing but they may be subject to change.

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 02/08/2011 16:14