Dr. Pawel Pomorski
SHARCNET HPC Programming Specialist
Department of Physics and Astronomy
University of Waterloo
Waterloo, Ontario, N2L 3G1
CANADA
| Phone |
1-519-888-4567, ext. 38458 |
| Fax |
1-519-746-8115 |
| Email |
 |
|
|
Information about the course I taught at McMaster in 2010
NOTE: for 2012 course see CES 713 2012 course page
CES713, The Message Passing Interface for Parallel Applications
Time: Wednesdays 2-5 pm, first class February 24th, 2010, last class March 31st, 2010
Place: MDCL 2221
Students in the course will need an account with SHARCNET for their assignments. These can be obtained through their supervisor. If that is not feasible, the course instructor will be able to provide the student a temporary SHARCNET account.
Syllabus
The course will start with covering the basics of MPI programming, then proceed to more advanced MPI topics, including: non-blocking and collective communications,
communicators and topology.
Parallel matrix multiplication will be studied as a particular example.
Also, I will spend some time on the topic of designing efficient parallel algorithms, and on testing parallel programs.
Course notes and code examples will be posted here as the course goes on.
Evaluation
Course evaluation will be based on two assignments (25% each) plus a course project (50%).
Project due date: Wednesday, April 28, 2010. Please submit project package by email.
Lecture notes (PDF format)
Lecture 1a - MPI basics
Lecture 1b - Nonblocking communications
Lecture 1c - Collective communications
Lecture 1 - Code examples (.tar.gz file) Please email me if you encounter any difficulties when running these and I will try to help.
Lecture 2a - Understanding Communications
Lecture 2b - Communicators
Lecture 2c - Topologies
Lecture 2d - Matrix Multiplication
Lecture 2 - Code examples (.tar.gz file) Please email me if you encounter any difficulties when running these and I will try to help.
Lecture 3a - Performance
Lecture 3b - Grouping Data for Communications
Lecture 3c - Advanced Point to Point Communications
Lecture 3 - Code examples (.tar.gz file)
Lecture 4a - Input/Output
Lecture 4b - Design and Coding Parallel Programs: Sorting Example
Lecture 4 - Code examples (.tar.gz file)
Lecture 5a - MPI2 - I/O
Lecture 5b - Designing Parallel Algorithms
Lecture 5c - Advanced Communications : Coding Allgather
Lecture 5 - Code examples (.tar.gz file)
Lecture 6a - Tree Search
Lecture 6b - Parallel Libraries
Lecture 6 - Code examples (.tar.gz file)
Assignments
Assignment 1
Assignment 2