PPLS: Parallel Programming Languages and Systems
Welcome to Parallel Programming Languages and Systems
PPLS lecture times and venues are as follows:
- Wednesdays, 09:00, S1, 7 George Square
- Fridays, 09:00, LG.11, 40 George Square
Lectures will be recorded and will accessible from the Course Learn Page. There are no other course meetings (eg no tutorials).
The Course Materials section of this also site contains links to
- Lecture Overheads and other course notes for this session
- A set of Previous Lecture Recordings from an earlier run of the course (including a guide to which further reading corresponds to which lecture)
- Code and links to some Demo Programs
- Various items for Further Reading (see the Previous Lecture Recordings page for a guide to which further reading corresponds to which lecture)
PPLS coursework is explained and submitted through the Course Learn Page.
You are welcome to contact me by email to mic@ed.ac.uk, or via the PPLS Piazza
Murray Cole (Course Lecturer)
Course Outline
Introduction. Algorithmic and architectural models of parallelism. Characteristics of parallel architectures. Parallel algorithmic paradigms and simple parallel algorithms. Bag-of-tasks, pipeline, producers-consumers and interacting peers parallelism.
Issues in threaded programming. Atomicity, mutual exclusion, condition synchronization, locks, barriers semaphores and monitors. Use and implementation in Pthreads and Java.
Issues in message passing programming. Messages and synchronization models. Realization in MPI: communicators, simple and collective operations.
Alternative approaches to parallel programming. Task and pattern based models: Threading Building Blocks. Associative Models: Linda.