Session |
Topics |
Study Reading |
1 |
Introduction to parallel and distributed computing topics. Flynn taxonomy
of architectures, and examples of machines in each class. |
Arnold's notes, Tann Ch 1. |
2 |
Software programming models. Shared vs distributed data space
architectures, and programming models. Development of RankSort as a simple
example of a parallel algorithm. Use this to introduce language features
for generating and controlling parallel execution. |
Arnold's notes. |
3 |
Types of parallel exection, parallel proc calls, and execution of dissimilar
code in producer consumer programs. |
Arnold's notes. |
4 |
Message passing programming styles, Linda and CSP. Types of messaging,
synchronous, asynchronous, symetric named, and asymetric unnamed. CSP case
study using the Dining Philosophers problem. Contrast with a Linda solution
to the Dining Philosophers. |
Arnold's notes, Tann Ch. 6, section 6.6.2 |
5 |
Data conflicts and corruption of data using incorrect concurrency and
mutual exclusion. The concept of atomic update to prevent corruption of
shared data structures and the relevance to database record updates. Data
consistency in shared data systems, and the relevant work in parallel and
distributed architecture cache protocols. Cache consistency using snooping
and directory based cache consistency. Overview of the DDM, Hagersten and
Haridi. |
Arnold's notes, Tann Ch 6, sections 6.3 to 6.6 |
6 |
Introduction to practical work (Laboration) in distributed database
consistency middleware. OS design and software systems for distributed
programming environments. Centralized vs decentralized process scheduling,
and introduction to process migration strategies and problems associated
with packing stack frames. |
Arnold's notes, Tann Ch. 4. |
7 |
Process migration and data migration in shared data systems. Interaction
between the memory allocation system and the process useage of data to
maximise locality of reference. Problems include differing access patterns
between shared and local data items, and the best methods for distributing
such data over the physical machine memory modules. Also grain of concurrency,
process, thread, loop data level parallelism. |
Arnold's notes. |
8 |
Data flow algorithms, and graphical representation of execution. The
link between dataflow and pure functional languages, and the use of data
flow for automatic generation of parallelism. Types of implementation approach,
physical hardware, reconfigurable logic, dynamically reconfigurable logic,
and the Manchester architecture. Limitations of the Manchester machine,
and an overview of its operation, and design components. |
Arnold's notes, |
9 |
Distributed agreement and the role of time in distributed systems.
How can clocks be synchronised in distributed systems and why is this important.
Lamport clocks, and the happened before relation. Why use synchronized
clocks, and time stamps in distributed programming, Parallel Discrete Event
Simulation as a case study in distributed time reliant software. |
Tann Ch. 3, sections 3.1 to 3.3 |
10 |
Distributed mutual exclusion and distributed agreement. Leader election,
and atomic transactions in distributed systems, two phase locking and two
phase commit in database update applications. |
Tann Ch. 3, sections 3.3 to 3.5 |
11 |
Case Study, AMOEBA and CHORUS |
Tann, Ch. 7 and 9. |
12 |
Case Study, MACH |
Tann, Ch. 8. |
13 |
Revision and exam style questions answered in the class. |