School of Informatics - 2021/22

Course Information

Content

  • Item

    Course Summary

    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.
  • Item

    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

  • Item

    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.



    Click for more options
     
     
    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.

    Click for more options
      
    Issues in threaded programming. Atomicity, mutual exclusion, condition synchronization, locks, barriers semaphores and monitors. Use and implementation in  Pthreads and Java.

        Click for more options
     
    Issues in message passing programming. Messages and synchronization models. Realisation in MPI: communicators, simple and collective operations.

    Click for more options
     
    Alternative approaches to parallel programming. Task and pattern based models: Threading Building Blocks. Associative Models: Linda.