THE UNIVERSITY of EDINBURGH

DEGREE REGULATIONS & PROGRAMMES OF STUDY 2020/2021

Information in the Degree Programme Tables may still be subject to change in response to Covid-19

University Homepage
DRPS Homepage
DRPS Search
DRPS Contact
DRPS : Course Catalogue : School of Informatics : Informatics

Postgraduate Course: Message-passing Programming (INFR11163)

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
SummaryParallel 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 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 (focusing mainly on array subsections)
- Practicalities / Hints and Tips
Entry Requirements (not applicable to Visiting Students)
Pre-requisites Co-requisites
Prohibited Combinations Other requirements Ability to program in C, C++ or Fortran.

There are limited spaces on this course. Students not on the MSc in High Performance Computing or MSc High Performance Computing with Data Science should contact the course secretary to confirm availability and confirm that they have the required prerequisites before being enrolled on the course.
Information for Visiting Students
Pre-requisitesAbility to program in C, C++ or Fortran.
High Demand Course? Yes
Course Delivery Information
Academic year 2020/21, Available to all students (SV1) Quota:  80
Course Start Semester 1
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 100 ( Lecture Hours 15, Supervised Practical/Workshop/Studio Hours 10, Feedback/Feedforward Hours 1, Programme Level Learning and Teaching Hours 2, Directed Learning and Independent Learning Hours 72 )
Assessment (Further Info) Written Exam 0 %, Coursework 100 %, Practical Exam 0 %
Additional Information (Assessment) 100% coursework.

This is a practical course and the associated programming exercises are at least as important as the lectures. The course is assessed by two components:

1) A timed in-class test.
2) Development of MPI program to solve a given problem and produce a report covering the program's design, implementation and performance. This is split into two hand-ins: one focussed on design and planning, the second on the implementation and results (and analysis). Feedback for the first hand-in will be provided before the second hand-in deadline.


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.
Feedback Provided on assessed work and through practical classes.
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.
Full reading list provided via Learn.
Additional Information
Graduate Attributes and Skills Project planning.
Project management skills.
Collaborative working.
Effective written and diagrammatic communication.
Technical writing.
Data collection and analysis.
Programming.
Special Arrangements There are limited spaces on this course. Students not on the MSc in High Performance Computing or MSc High Performance Computing with Data Science should contact the course secretary to confirm availability and confirm that they have the required prerequisites before being enrolled on the course.
Additional Class Delivery Information Normal class arrangements are: two lectures per week (weeks 1-7), one practical per week (weeks 2-11), with a single lecture in week 9. These details may be subject to change or alteration based on staff/room availability in a particular session, but any such changes will be provided via the timetabling system and posted on the Learn course.
KeywordsMPI,MPP,EPCC,HPC,High Performance Computing,Parallel,Programming,Parallelism
Contacts
Course organiserDr David Henty
Tel: (0131 6)50 5960
Email: d.henty@ed.ac.uk
Course secretaryMiss Jemma Auns
Tel: (0131 6)51 3545
Email: Jemma.Auns@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