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
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.