Skip to navigation | Skip to main content | Skip to footer

Current postgraduate taught students

COMP67040: Highly Parallel Systems (2007-2008)

This is an archived syllabus from 2007-2008

Highly Parallel Systems
Level: 6
Credit rating: 15
Pre-requisites: No Pre-requisites
Co-requisites: No Co-requisites
Lectures: 33
Lecturers: John Keane
Course lecturer: John Keane

Additional staff: view all staff
Sem 2 w19-25,29-32 Lecture 2.15 Mon 09:00 - 12:00 -
Assessment Breakdown
Exam: 80%
Coursework: 20%
Lab: 0%


The main aim of the unit is to provide an in-depth introduction to the field of highly parallel computing, which will guide students to current research in the subject. In particular the course unit will cover languages, system software, algorithms and architectures in detail, and performance issues and applications will also be addressed, enabling students to understand how applications can be effectively distributed on a parallel machine.

Academic knowledge

Understand the historical evolution of concurrency and parallelism, and associated architectures.
Demonstrate knowledge of the different types of parallel architecture designs and the associated trade-offs.
Understand the types of application requirements of business- and mission-criticality that demand the use of parallel systems, both in terms of speed and reliability.
Demonstrate knowledge of the major approaches to parallelisation of an application, the trade-offs involved, and the inherent difficulty in providing programmer models of parallel behaviour.
Understand the trends in technologies (both hardware and software) that have influenced present day systems and are likely to influence those of the future.


Introduction: the Holy Grail challenges: optimal speedup, total reliability; ease of use; design tradeoffs; application requirements; the influence of technology; the classification of parallel computer architectures; formal models.
Software: basic parallel constructs; communication and synchronisation; machine-specific extensions to sequential languages; generalized extensions to sequential languages; parallelising compilers; operating systems; simple performance models of parallel computers; declarative language approaches; database parallelism.
Parallel algorithms: Parallelism in large data sets; algorithms; performance measures; partitioning; load balancing; examples of algorithms from different application areas.
Parallel computer architecture: evolution of parallelism in computer architecture; peripherals; direct memory access; separately clocked regimes; instruction fetch overlaps; pipelining.
SIMD - array processors; vector processors; MIMD - shared memory processors (SMP); distributed memory processors (MPP); multi-threaded architectures.
Commerical database servers- data-intensive applications; reliability requirements: ICL GOLDRUSH, IBM SP2.
Memory models - cache coherency; hardware optimisations; sequential consistency; weak ordering; formal models.
Parallel Databases: parallel query processing; query languages; optimisation (logical, physical and parallel); machine architectures; parallel relational DBs; parallel object DBs; performance evaluation. The future.

Reading List

Title: Advanced Computer Architecture - Parellelism, Scalability, Programmability
Author: Hwang, K.
Publisher: McGraw Hill
Year: 1993

Title: Scalable Parallel Computing
Author: Hwang and Xu
Publisher: McGraw Hill
Year: 1998