Timetable information in the Course Catalogue may be subject to change.

University Homepage
DRPS Homepage
DRPS Search
DRPS Contact
DRPS : Course Catalogue : School of Informatics : Informatics - Distance Learning

Postgraduate Course: Message Passing Programming (INFD11011)

Course Outline
SchoolSchool of Informatics CollegeCollege of Science and Engineering
Credit level (Normal year taken)SCQF Level 11 (Postgraduate)
Course typeOnline Distance Learning AvailabilityAvailable to all students
SCQF Credits10 ECTS Credits5
Summary*This course is delivered online for students on Online Learning programmes within the College of Science and Engineering only. On-campus students interested in the material should refer to INFR11163 - Message-passing Programming*

Parallel programming by definition involves co-operation between processors to solve a common problem. The programmer has to define the tasks that will be executed by the processors, and also how these tasks exchange data and synchronise with each other.

In the message-passing model the tasks are separate processes that communicate by explicitly sending each other messages. All parallel operations are performed via calls to some message-passing interface that is entirely responsible for interfacing with the physical communication network.

This course uses the de facto standard for message passing, the Message Passing Interface (MPI), which is a library callable from C, C++ or Fortran. Parallel programs written using MPI can run on almost any system from a multicore laptop up to the world's largest supercomputers.
Course description The course makes use of lecture content delivered in both video form and delivered live via e.g. Blackboard Collaborate. Practical activities will be set for students to undertake in their own time in advance of regular tutorial sessions run via Blackboard Collaborate, with discussion and support available from other students, demonstrators, and staff via dedicated discussion areas (e.g. Learn Discussion Boards, Slack).

The course will cover the following topics:

- The message-passing model
- Message-passing parallelisation of a regular domain code
- MPI terminology
- The anatomy of send and receive (synchronous and asynchronous)
- Point-to-point message-passing examples
- Non-blocking operations
- Collectives
- Communicator management
- Derived datatypes (focusing mainly on array subsections)
- Practicalities / Hints and Tips
Entry Requirements (not applicable to Visiting Students)
Pre-requisites Students MUST have passed: Practical Introduction to High Performance Computing (INFR11184) OR Practical Introduction to High Performance Computing (PGPH11093) OR Practical Introduction to High Performance Computing (INFD11009)
Prohibited Combinations Students MUST NOT also be taking Message-passing Programming (INFR11163)
Other requirements Students must have taken Practical Introduction to High Performance Computing in a previous session
Information for Visiting Students
Pre-requisitesAbility to program in C, C++ or Fortran.
High Demand Course? Yes
Course Delivery Information
Academic year 2023/24, Available to all students (SV1) Quota:  None
Course Start Semester 2
Course Start Date 15/01/2024
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 100 ( Online Activities 30, Programme Level Learning and Teaching Hours 2, Directed Learning and Independent Learning Hours 68 )
Assessment (Further Info) Written Exam 0 %, Coursework 100 %, Practical Exam 0 %
Additional Information (Assessment) Written Exam 0 %, Coursework 100 %, Practical Exam 0 %

This is a practical course and the associated programming exercises are at least as important as the lectures. The course is assessed by coursework which requires students to write an MPI program to solve a given problem and produce a report covering the program's design, implementation and performance, demonstrating scientific writing.
Feedback Provided on assessed work and through discussion of practical exercises via scheduled Blackboard Collaborate class sessions, and class-discussion.
No Exam Information
Learning Outcomes
On completion of this course, the student will be able to:
  1. Describe the message-passing model in detail.
  2. Explain the circumstances which cause issues such as deadlock.
  3. Implement standard message-passing algorithms in MPI.
  4. Measure and comment on the performance of MPI programs.
  5. Design, implement and debug efficient parallel programs to solve regular-grid problems.
Reading List
"Using MPI: Portable Parallel Programming with the Message-Passing Interface", William Gropp, Ewing Lusk and Anthony Skjellum.
Additional Information
Graduate Attributes and Skills Project planning.
Project management skills.
Effective written and diagrammatic communication.
Technical writing.
Data collection and analysis.
Additional Class Delivery Information Fully delivered online
KeywordsProgramming,message passing,parallel,distributed memory,MPI,HPC,Parallelism
Course organiserDr David Henty
Tel: (0131 6)50 5960
Course secretaryMr James Richards
Tel: 90131 6)51 3578
Help & Information
Search DPTs and Courses
Degree Programmes
Browse DPTs
Humanities and Social Science
Science and Engineering
Medicine and Veterinary Medicine
Other Information
Combined Course Timetable
Important Information