Dr. Pawel Pomorski

SHARCNET HPC Programming Specialist
Department of Physics and Astronomy
University of Waterloo
Waterloo, Ontario, N2L 3G1
Phone 1-519-888-4567, ext. 38458
Fax 1-519-746-8115

Information about the course I am teaching at McMaster in 2013

CES713, The Message Passing Interface for Parallel Applications
Time: Wednesdays 2:30-5:30, first class January 9th, 2013, last class Feb. 13th, 2013
Place: MMC ITB 139

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.

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.

Course evaluation will be based on two assignments (25% each) plus a course project (50%).
Project due date: Monday, February 25th, 2013. Please submit project package by email.

Lecture notes (PDF format) for last year's (2012) course

Lecture 1 - Introduction to MPI, collective communications, blocking and non-blocking communications

Lecture 1 - Code examples (.tar.gz file) and also (.zip file) Please email me if you encounter any difficulties when running these and I will try to help.

Lecture 2a - Communicators

Lecture 2b - Topologies

Lecture 2c - Matrix Multiplication

Lecture 2d - Performance

Lecture 2 - Code examples (.tar.gz file) and also (.zip file)

Lecture 3a - Grouping Data for Communications

Lecture 3b - Advanced Point to Point Communications

Lecture 3c - Input/Output

Lecture 3 - Code examples (.tar.gz file) and also (.zip file)

Lecture 4a - Design and Coding Parallel Programs: Sorting Example

Lecture 4b - Designing Parallel Algorithms

Lecture 4c - Advanced Communications : Coding Allgather

Lecture 4 - Code examples (.tar.gz file) and also (.zip file)

Lecture 5a - Parallel Libraries

Lecture 5b - MPI2 - I/O

Lecture 5c - Tree Search

Lecture 5 - Code examples (.tar.gz file) and also (.zip file)

Lecture 6a - Process Creation

Lecture 6b - Remote Memory Access


Assignment 1

Assignment 2