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. Quite a bit of the material we cover in class will not be in the textbook; you are responsible for material we cover in class in any case. 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 Stefan K., 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 strongly prefer that you do the term project in teams of two. If you want to work alone, you must talk to me first. I will expect the graduate students in the course to propose somewhat more ambitious projects than the undergraduates. It is okay for a grad student and an undergrad to work together on a team.
Tue Jan 13: SDSC orientation, accounts, and performance
analysis tools (Stefan Boeriu, guest lecturer).
[Stefan B.'s web page]
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 1 due, Homework 2 assigned)
Thu Jan 22:
Parallel matrix multiplication.
(Aydin Buluc, guest lecturer.)
[slides on matrix multiplication]
(Homework 2 due, Homework 3 assigned)
Thu Jan 29: Divide and conquer examples using Cilk++.
(Aydin Buluc, guest lecturer.)
[slides on sorting on multicore ]
Reading for the academically inclined: book chapter on parallel algorithms by Guy Blelloch and Bruce Maggs. Note that they use the word "depth" instead of "span".
Tue Feb 3: Scientific examples using Cilk++ (Aydin Buluc, guest lecturer.) [slides on matrix-matrix and matrix-vector multiplication ].
Thu Feb 5: Midterm 1. [syllabus and rules]
(Homework 3 due 11:59pm Mon Feb 9)
Tue Feb 10: Spatially local computations:
Game of Life, finite element modeling, temperature problem.
a java Life simulator;
slides on bone density modeling]
Reading: Textbook sections 6.1 - 6.3 (synchronous iteration).
(Homework 4 assigned)
Thu Feb 12: (no class, JRG out sick)
(Homework 4 due 11:59pm Fri Feb 20)
Tue Feb 24: Conjugate gradients,
sparse matrix-vector multiplication.
[slides on meshes,
conjugate gradients, matrices, and graphs]
(Final project teams and proposals due)
Thu Feb 26: Matrices and graphs, partitioning.
[same slides as last time on
matrices and graphs]
Reading: Berry-Hendrickson paper (passed out in class).
Thu Mar 12: Exotic languages: Star-P, mapreduce.
Wed Mar 18: Final project demos in CSIL, 8:00-11:00 am. [schedule]
(Final project reports due 11:59pm Thu Mar 19)