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