Postgraduate Course: Parallel Programming Languages and Systems (Level 11) (INFR11023)
Course Outline
School | School of Informatics |
College | College of Science and Engineering |
Credit level (Normal year taken) | SCQF Level 11 (Year 4 Undergraduate) |
Availability | Available to all students |
SCQF Credits | 10 |
ECTS Credits | 5 |
Summary | The module familiarises students with the issues involved in designing, implementing and applying parallel programming systems. Initial motivation will be provided by consideration of a number of typical high performance applications and parallel architectures. This will highlight the role of parallel software systems as a means of bridging the gap between these and allow abstraction of the issues which must be addressed by any such system (partitioning, communication, agglomeration, scheduling). It will explore the ways in which these challenges have been addressed by a range of systems, including both de facto standards and more adventurous research projects. |
Course description |
* Introduction. Conceptual and architectural models of parallelism. Parallel algorithmic paradigms and simple parallel algorithms.Iterative, recursive pipeline and bag-of-task parallelism.
* Generic issues in shared variable programming. Mutual exclusion, condition synchronization. Locks, barriers semaphores and monitors, use and implementation.
* Realisation in Pthreads and Java.
* Issues in message passing programming. Channels and synchronization models.
* Realisation in MPI: communicators, simple and collective operations
* Selected case studies highlighting alternative approaches, for example,
o Associative models. Linda, tuple space and related primitives.
o Threading Building Blocks.
Relevant QAA Computing Curriculum Sections: Concurrency and Parallelism
|
Entry Requirements (not applicable to Visiting Students)
Pre-requisites |
|
Co-requisites | |
Prohibited Combinations | Students MUST NOT also be taking
Parallel Programming Languages and Systems (Level 11) (UG) (INFR11226)
|
Other requirements | MSc students must register for this course, while Undergraduate students must register for INFR11226 instead.
This course is open to all Informatics students including those on joint degrees. For external students where this course is not listed in your DPT, please seek special permission from the course organiser (lecturer).
Students must also be competent programmers in C, C++ or Java and have an appreciation of the connection between log_2 and 2^. |
Information for Visiting Students
Pre-requisites | As above. |
High Demand Course? |
Yes |
Course Delivery Information
|
Academic year 2023/24, Available to all students (SV1)
|
Quota: None |
Course Start |
Semester 2 |
Timetable |
Timetable |
Learning and Teaching activities (Further Info) |
Total Hours:
100
(
Lecture Hours 20,
Summative Assessment Hours 2,
Programme Level Learning and Teaching Hours 2,
Directed Learning and Independent Learning Hours
76 )
|
Assessment (Further Info) |
Written Exam
80 %,
Coursework
20 %,
Practical Exam
0 %
|
Additional Information (Assessment) |
Exam 80%
Coursework 20%
Assessment will be by a combination of short programming exercises, designed to familiarize students with the practicalities of parallel programming; and, pencil-and-paper exercises.
You should expect to spend approximately 20 hours on the coursework for this course. |
Feedback |
Not entered |
Exam Information |
Exam Diet |
Paper Name |
Hours & Minutes |
|
Main Exam Diet S2 (April/May) | Parallel Programming Languages and Systems (Level 11) (INFR11023) | 2:00 | |
Learning Outcomes
On completion of this course, the student will be able to:
- Describe generic issues (as discussed in the syllabus) which must be addressed by any parallel programming system.
- Explain, given a description of a previously unseen parallel application, where specific instances of the generic issues will arise.
- Explain, in considerable detail, the ways in which the generic issues are addressed by the MPI and Pthreads programming models and their supporting infrastructure.
- Apply their practical experience with MPI and Pthreads to write clean, adaptable and scalable parallel programs for simple applications.
- Compare the approaches proposed by a range of more speculative programming models.
|
Reading List
G.R. Andrews, Foundations of Multithreaded, Parallel and Distributed Programming, 2000
B. Wilkinson, M.Allen, 'Parallel Programming, Techniques and Applications', 1999
I Foster, 'Designing and Building Parallel Programs', 1995
M.J.Quinn, 'Parallel Programming in C with MPI and OpenMP', 2004
Selected research papers |
Additional Information
Graduate Attributes and Skills |
Not entered |
Keywords | parallel programming,architectures,concurrency,parallelism |
Contacts
Course organiser | Dr Murray Cole
Tel: (0131 6)50 5154
Email: |
Course secretary | Mrs Helen Tweedale
Tel: (0131 6)50 3827
Email: |
|
|