Textbook: "Parallel Programming" by Barry Wilkinson and Michael Allen, 2nd edition, Pearson Prentice Hall.
Resourses on Message Passing Interface (MPI):
ANL MPI page
A User's Guide to MPI by Peter Pacheco
A collection of MPI tutorials from the ANL MPI page
Resources on GPU programming:
CUDA Programming Guide
Resources on C programming:
GNU C library
manual
Tentative syllabus:
| Week and dates | Sections |
|---|---|
| Week 1, Jan 16, 18 | 1.1 – 1.3 |
| Week 2, Jan 23, 25 | 2.1 – 2.3 |
| Week 3, Jan 30, Feb 1 | 3.1 – 3.2 |
| Week 4, Feb 6, 8 | 4.1 – 4.2 |
| Week 5, Feb 13, 15 | 5.1 – 5.3 |
| Week 6, Feb 20, 22 | 6.1 – 6.3 |
| Week 7, Feb 27, 29 | Review and Midterm |
| Week 8, Mar 5, 7 | 7.1 – 7.4 |
| Week 9, Mar 12, 14 | 8.1 – 8.3 |
| Week 10, Mar 19, 21 | 8.4 – 8.6 |
| Spring break | |
| Week 11, Apr 2, 4 | 9.1, 9.4 |
| Week 12, Apr 9, 11 | 10.2, 11.1 – 11.3 |
| Week 13, Apr 16, 18 | 12.1 – 12.7, 13 |
| Week 14, Apr 23, 25 | Project presentations |
| Week 15, Apr 30, May 2 | Project presentations |
Homework:
Week 1, due Wednesday January 30
Week 2, due Wednesday February 6
Week 3, due Wednesday February 13
Week 4, due Wednesday February 20
Sample MPI program:
mpihello,
includes instructions for using the ARGO cluster.
Sample Pthread program
add_numbers.c –
a multithreaded program which adds numbers from an array.
Illustrates the use of a mutex, a condition variable and a barrier.
Project 1: The Mandelbrot set
Project description
mandelbrot.c (compile with -lm to
link with math library)
Due Wednesday March 5.
Exams:
Midterm exam. Due Friday March 7.
heat.c — a serial program to solve heat
distribution problem.
Projects: during the course, each student will complete two projects. The first project will be the implementation of a parallel program computing the Mandelbrot set, due somewhere in the middle of the semester. The second project will be an individual project, with the topic chosen by the student individually. As you can observe in the syllabus, two weeks at the end of the course are dedicated to project presentations. Currently, there are two types of projects I can envision:
I will be continuously updating this webpage as the course progresses. For more information, please look at Jan Verschelde's MCS 572 webpage