THE UNIVERSITY of EDINBURGH

DEGREE REGULATIONS & PROGRAMMES OF STUDY 2024/2025

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 : EPCC on-campus

Postgraduate Course: Message-Passing Programming (EPCC11002)

Course Outline
SchoolSchool of Informatics CollegeCollege of Science and Engineering
Credit level (Normal year taken)SCQF Level 11 (Postgraduate) AvailabilityAvailable to all students
SCQF Credits10 ECTS Credits5
SummaryN.b. this is the on-campus (Semester 1) version of the course. An online-only version (designed for Online part-time intermittent students) runs in Semester 2.

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 library 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 to the largest supercomputers in the world.
Course description 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
- MPI Best Practice / Hints and Tips
- Case Study exercise
Entry Requirements (not applicable to Visiting Students)
Pre-requisites Co-requisites
Prohibited Combinations Other requirements None
Information for Visiting Students
Pre-requisitesNone
Course Delivery Information
Academic year 2024/25, Available to all students (SV1) Quota:  84
Course Start Semester 1
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 100 ( Lecture Hours 22, Supervised Practical/Workshop/Studio Hours 11, Feedback/Feedforward Hours 1, Programme Level Learning and Teaching Hours 2, Directed Learning and Independent Learning Hours 64 )
Assessment (Further Info) Written Exam 0 %, Coursework 100 %, Practical Exam 0 %
Additional Information (Assessment) 100% coursework made up of:

1. Formative-only class test (0%)
2. Coursework project made up of two submissions:
i). a 25% report planning work to be undertaken, and
ii). a 75% submission consisting of
a). a report (worth 25% of total, 33.33% of second submission), and
b). accompanying code (worth 50% of overall, 66.67% of second submission).

Coursework is expected to be worked on consistently across the Semester building on material from lectures and practicals as they are delivered. Although the first and second submission dates are sequential they are inherently linked and some work not assessed until the second submission is clearly relevant to feed into the first submission. The two should be treated as a single coherent piece of work with the first coursework offering students an opportunity to receive feedback which can be acted upon to improve the later higher-stakes submission.
Feedback Provided on assessed and formative work and through practical classes.
No Exam Information
Learning Outcomes
On completion of this course, the student will be able to:
  1. Understand the fundamental concepts of the message-passing model
  2. Correctly implement standard message-passing algorithms in MPI
  3. Measure and analyse the performance of MPI programs
  4. Design, implement, verify and debug efficient parallel programs to solve a common computational problem
  5. Justify the chosen software design for the situation at hand
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.
Collaborative working.
Writing correct code.
Programming and Testing.
Effective written and diagrammatic communication.
Technical writing.
Data collection and analysis.
KeywordsParallelism,EPCC,HPC,MPI,Computational Science,MPP,Message-Passing
Contacts
Course organiserDr David Henty
Tel: (0131 6)50 5960
Email: d.henty@ed.ac.uk
Course secretaryMr James Richards
Tel: 90131 6)51 3578
Email: J.Richards@epcc.ed.ac.uk
Navigation
Help & Information
Home
Introduction
Glossary
Search DPTs and Courses
Regulations
Regulations
Degree Programmes
Introduction
Browse DPTs
Courses
Introduction
Humanities and Social Science
Science and Engineering
Medicine and Veterinary Medicine
Other Information
Combined Course Timetable
Prospectuses
Important Information