Dana Vrajitoru     Office Hours

B524 / B424 Parallel and Distributed Programming

Week Homeworks Class Materials Textbook Reading Tests
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.