Postgraduate Course: Message-Passing Programming (EPCD11002)
Course Outline
School | School of Informatics |
College | College of Science and Engineering |
Credit level (Normal year taken) | SCQF Level 11 (Postgraduate) |
Course type | Online Distance Learning |
Availability | Not available to visiting students |
SCQF Credits | 10 |
ECTS Credits | 5 |
Summary | N.b. this is the Online Learning (Semester 2) version of the course. An on-campus version (EPCC11002) runs in Semester 1.
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
|
Course Delivery Information
|
Academic year 2024/25, Not available to visiting students (SS1)
|
Quota: None |
Course Start |
Semester 2 |
Course Start Date |
13/01/2025 |
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) |
100% coursework comprising:«br /»
a) Formative elements and discussion (0%)«br /»
b) Preliminary Report planning work (25%)«br /»
c) Report and Code submission (75% - split 25%/50% of total or 33.33%/66.66% of third submission between report and code) |
Feedback |
Provided on assessed and formative work and through live session discussions |
No Exam Information |
Learning Outcomes
On completion of this course, the student will be able to:
- Understand the fundamental concepts of the message-passing model
- Correctly implement standard message-passing algorithms in MPI
- Measure and analyse the performance of MPI programs
- Design, implement, verify and debug efficient parallel programs to solve a common computational problem
- 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.
Further material provided via Leganto and discussions |
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. |
Keywords | Parallelism,EPCC,HPC,MPI,Computational Science,MPP,Message-Passing |
Contacts
Course organiser | Dr David Henty
Tel: (0131 6)50 5960
Email: d.henty@ed.ac.uk |
Course secretary | Mr James Richards
Tel: 90131 6)51 3578
Email: J.Richards@epcc.ed.ac.uk |
|
|