Dana Vrajitoru     Office Hours

B524 / B424 Parallel and Distributed Programming

Week Homeworks Class Materials Textbook Reading Tests
14.
Graduate Projects
Review for the final Final exam: Thursday, December 17, 2020
13. Lab 1
Class Exercise 4
Other libraries Chapters 6.3 and 7 Quiz 13
12.
Graduate Projects
Class Exercise 4
Network Architectures Chapters 2.3 to 2.6 Quiz 12
12. Homework 11 Embarrassingly Parallel Programs
Combinatorial algorithms
Quiz 11
11. Homework 10 Client-Server
More about MPI
Chapter 6.1.8 Quiz 10
10. Homework 9
Class Exercise 3
Problem Decomposition
Exploratory Decomposition
Chapter 3.3 Quiz 9
9. Homework 8 Bubble Sort with MPI Chapter 5 Quiz 8
8. Pipelines

Introduction to MPI
Chapter 3.3 Midterm
7. Homework 7
Class exercise 2
Pool of Tasks
Queue of Tasks
Introduction to MPI
Chapter 3.3 Quiz 7
Midterm: Thursday, October 15
6. Homework 6 Parallel Prefix Computation
Divide and Conquer
Parallel Genetic Algorithm
Merge Sort
Chapters 3.5, 3.6 Quiz 6
5. Homework 5 Divide and conquer Chapter 6.1.3 Quiz 5
4. Homework 4
Exercise 1
Conditional Variables
Readers and writers
Chapters 2, 3.3, 6.1.4, 6.1.9.5, 6.1.12 Quiz 4
3. Homework 3 Shared Memory Models
The Pthread Library
Chapters 1, 2.1 to 2.3, 4.1, 4.2 Quiz 3
2. Homework 2 Shared Memory Models Introduction Chapters 1, 2.1 to 2.3, 4.1, 4.2 Quiz 2
1. Homework 1 Introduction Chapters 1, 2.1 to 2.3, 4.1, 4.2 Quiz 1


Course description:

Overview of parallel computers, shared memory, message passing, MIMD and SIMD classifications. Understanding and use of message passing and synchronization facilities such as MPI. Study of parallel programming models such as master-slave, client-server, tast-farming, divide-and-conquer and pipelining. Performance analysis of parallel systems, execution time, time complexity, load balancing and scalability.

B524 involves a project. Credit not given for both B424 and B524.

Prerequisites: C243, M301.


Textbook: T. Rauber, G. Runger (2013): Parallel Programming for Multicore and Cluster Systems, 2nd edition, Springer.

Grading system:

Some ideas of projects for the graduate students.

Guidelines for assignments:

Programming Environment:


Links and resources

Syllabus (Canvas)
Parallel Knoppix distribution 6.0
MPI resources
Pthreads documentation
OpenMP
Linux resources


Other Documentation

P. Pacheco (2011): Parallel Programming, Mrgan Kaufman.

B. Wilkinson, M. Allen (1999): Parallel Programming, Prentice-Hall.

G. R. Andrews (2000): Foundations of Multithreaded, Parallel and Distributed Programming, Addison-Wesley.

W. Gropp, E. Lusk, A. Skjellum (1999): Using MPI, second edition, MIT Press.

W. Gropp, M. Snir, B. Nitzberg, E. Lusk (1998): MPI--the complete reference, MIT Press.

P. S. Pacheco (1997): Parallel programming with MPI, Morgan Kaufmann.

S. H. Roosta (2000): Parallel processing and parallel algorithms : theory and computation, Springer.


Last modified: August 2018.
danav@cs.iusb.edu.