I will assign reading from the textbook each week; see the daily schedule below. You will need to both read the text and come to class. You are responsible for material we cover in class whether it is in the textbook or not (quite a bit of it won't be). Class participation is expected and will have an influence on your grade.
It is your responsibility to manage your time so that you can turn in your assignments when they are due. No late homework will be accepted.
If you have questions about grading of homework, talk to the t.a. first. If you are unable to reach an agreement, make an appointment to talk to me. The statute of limitations for regrades is one week -- that is, any requests for regrades must be made no later than one week after the homework (or exam) was returned in class.
The projects are intentionally left open-ended so that you can explore. I encourage you to discuss your plans with me and/or Nick, in office hours or by email, as you decide what to do. The project proposal is intended as a chance for you to get feedback on your plans before you get too far down the road, so please make your proposal as complete as possible even if you're not yet sure what might change.
If you have a parallel computing project of your own that you would like to work on instead of doing one of these three problems, please talk to us about it. It's okay to do a different project provided it has the right level of parallel-implementation difficulty, and provided you write a thorough proposal describing it.
I recommend doing the term project in teams of two, though you may do it alone if you prefer.
Tue Jan 8: Introduction.
[bone density modeling,
parallel sorting]
Reading: Textbook sections 1.1, 1.2, 1.3 (overview of parallel computers).
(Homework 1 assigned)
Thu Jan 10: Message-passing and MPI.
[slides on parallel machines]
Reading: Textbook sections 2.1, 2.2 (introduction to MPI).
Tue Jan 15: Stefan Boeriu: DataStar overview, accounts, and tools.
[Stefan's
DataStar page]
(Homework 1 due)
Thu Jan 17: More MPI; measures of parallel complexity.
[MPI slides;
examples of MPI code]
Reading: Textbook sections 2.3, 2.4, 2.5
(analyzing and debugging parallel programs),
and sections 3.1 and 3.2.3 (Monte Carlo methods).
(Homework 2 assigned)
Tue Jan 22: Parallel complexity and Amdahl's law.
[DataStar architecture (slides 12-24)]
Reading: Textbook sections 4.1.1 (partitioning),
11.1, 11.2 (matrix multiplication).
Thu Jan 24: Tightly coupled problems:
matrix-vector multiplication.
[classnotes]
(Homework 2 due, Homework 3 assigned)
Tue Jan 29: Memory hierarchy and matrix multiplication. [slides]
Thu Jan 31: Parallel matrix multiplication.
[same slides as Jan 29]
Reading: Textbook sections 6.1 - 6.3 (synchronous iteration).
Tue Feb 5: Spatially local problems: Stencils, synchronous iteration, the game of Life. [Wikipedia on Life; a Java simulator]
Thu Feb 7: More stencils, Jacobi relaxation.
[slides]
(Homework 3 due, Homework 4 assigned)
Tue Feb 12: Midterm 1. [rules and syllabus]
Thu Feb 14: Nick Larusso: MapReduce. [slides]
Tue Feb 19: Load balancing in spatially local problems: Fish modeling. [paper]
Thu Feb 21: Sparse matrices, graphs, partitioning. [slides on sparse matrices and partitioning]
(Homework 4 due 11:59pm Sun Feb 24)
Tue Feb 26: Viral Shah: Star-P.
Thu Feb 28: Graph algorithms.
[slides;
sequential and
parallel maximal independent set programs;
Luby's
paper on parallel MIS]
Reading: "Graph Analysis with High-Performance Computing",
passed out in class.
(Final project teams and proposals due 11:59pm Thu Feb 28)
Tue Mar 4: Graph algorithms and multithreaded architectures.
Thu Mar 6: Brent Oster: GPU programming and CUDA.
(Final project progress reports due 11:59pm Thu Mar 6)
Tue Mar 11: Midterm 2. [rules and syllabus]
Thu Mar 13: No class (JRG at SIAM Parallel Processing Conference)
Wed Mar 19: Final project demos in CSIL, 8:00-11:00 am.
(Final project reports due 11:59pm Thu Mar 20)