Parallel Programming Languages and Systems (PPLS) is a 10 credit course at Level 11, normally taken in Year 4. It runs in Semester 2. The exam is in April/May, and is worth 80% of the course mark. The University descriptor is here.
Welcome to Parallel Programming Languages and Systems (Level 11) (2021-2022) [SEM2]
Hello, I'm delighted to welcome you to my Parallel Programming Languages and Systems (PPLS) course. The course is taken by students in UG4/5 and MSc years.
I am currently in the process of getting these pages ready for the new academic year (PPLS runs in the second semester).
Please also feel free to contact me by email to mic@ed.ac.uk
Murray Cole
Course Outline
This course introduces students to the issues involved in designing, implementing and applying parallel programming systems. We begin by considering the characterstics of typical parallel algorithms and parallel architectures. This highlights the need for parallel software systems to bridge the gap between them.
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. Realisation in MPI: communicators, simple and collective operations.
Alternative approaches to parallel programming. Task and pattern based models: Threading Building Blocks. Associative Models: Linda.