Arnold Pears

Syllabus Distribuerade Systems
(TFP 1TT835)

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.