PPLS: Parallel Programming Languages and Systems
Welcome to Parallel Programming Languages and Systems
PPLS lecture times and venues are as follows:
- Wednesdays, 09:00, Room 2.12 Appleton Tower
- Fridays, 09:00, Room 2.12 Appleton Tower
Lectures will be recorded and will be accessible from the Course Learn Page. There are no other course meetings (eg no tutorials). There is a PPLS Edstem Discussion Board.
The Course Materials section of this site also 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 us by email at mic@ed.ac.uk, adaglis@ed.ac.uk, or via the PPLS Edstem Discussion Board
Murray Cole and Alex Daglis (Course Lecturers)
Course Outline
Introduction. Algorithmic and architectural models of parallelism. Characteristics of parallel architectures. Parallel algorithmic paradigms and simple parallel algorithms. Bag-of-tasks, pipeline, producer-consumer, 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.