Introduction to Parallel Algorithms and Programming

CSE 40833/60833 - Fall 2007

Instructor

Scott Emrich
Office: 351 Fitzpatrick Hall
Phone: (574)631-0353; E-mail: semrich at nd.edu
Office hours: Wed and Fri, 10-11:30 AM and by appointment

Announcements

Overview

This course will provide a comprehensive introduction to parallel algorithms and parallel programming. Emphasis will be on both algorithmic techniques and parallel programming using MPI. Lecture topics will be: models of parallel computation, performance measures, basic parallel constructs and communication primitives, and parallel algorithms for selected problems including sorting. Approximately 40% of the course will be seminar-style. Programming assignments and a research-oriented final project will be done on a 22 node partition of a campus computing cluster.

Readings

Parallel fundamentals by Dr. Srinivas Aluru

Parallel models by Dr. Srinivas Aluru

Embeddings by Dr. Srinivas Aluru

Discrete FFT by Dr. Srinivas Aluru.

Lectures

Lecture 1  - Introduction and course organization

Lecture 2  - Basics [ppt] [pdf]

Lecture 3  - Parallel models [ppt] [pdf]

Lecture 4  - Hypercubes [ppt] [pdf]

Lecture 5  - Networks, Parallel sums [ppt] [pdf]

Lecture 6  - Introduction to MPI [ppt] [pdf]

Lecture 7  - Parallel prefix [ppt] [pdf]

Lecture 8  - Applications of parallel prefix [ppt] [pdf]

Lecture 9  - Sequence alignment; Embeddings [ppt] [pdf]

Lecture 10 - Embeddings of meshes and tori [ppt] [pdf]

Lecture 11 - Intro to parallel sorting [ppt] [pdf]

Lecture 12 - Bitonic merge [ppt] [pdf]

Lecture 13 - Sample sort [ppt] [pdf]

Lecture 14 - Collective communication [ppt] [pdf]

Lecture 15 - Matrix Multiplication [ppt] [pdf]

Lecture 16 - Intro to FFT [ppt] [pdf]

Lecture 17 - Parallel FFT [ppt] [pdf]

Lecture 18 - Graph algorithms [ppt] [pdf]

Lecture 19 - Graph algorithms [ppt]

Homework assignments

Homework #1 - due 9/10/07

Homework #2 - due 9/21/07

Homework #3 - due 10/15/07

Programming assignments

Programming assignment #1 - due 10/01/07

Programming assignment #2 - due 12/5/07

Text and syllabus

Parallel Programming with MPI by Peter S. Pacheco

The syllabus can be found here

Academic dishonesty

All are required to abide by the CSE and University honor code. Discussions are encouraged, but all answers/programs must be written/developed individually. Final projects may be performed in groups of up to three students if the permission of the instructor is obtained.