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.
You will do programming homework using both MPI (message-passing) and Cilk (multicore). You can debug Cilk code on the dual-core machines at CSIL or on your own machine if it has multiple cores; you'll Cilk runs on larger numbers of cores on Triton to turn in. For MPI, you will have to use Triton for debugging unless you have access to another MPI cluster.
In class on Monday, January 11, Stefan Boeriu from ECI will give an overview and tutorial on using Triton.
See instructions here for how to connect to Triton using your generated key.
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 Hans, 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 fine 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.
Mon Jan 4: Introduction.
[parallel sorting,
bone density modeling]
Reading: Textbook sections 1.1, 1.2, 1.3 (overview of parallel computers).
(Homework 1 assigned)
Wed Jan 6: Message-passing and MPI.
[slides on parallel machines;
MPI slides;
examples of MPI code]
Reading: Textbook sections 2.1, 2.2 (introduction to MPI).
Mon Jan 11: SDSC orientation, accounts, and performance
analysis tools (Stefan Boeriu, guest lecturer).
(Homework 1 due, Homework 2 assigned)
Wed Jan 13: Matrix-vector multiplication,
data layout, parallel complexity measures.
[slides on complexity notation
and matrix multiplication]
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).
Mon Jan 18: (Martin Luther King holiday, no class)
Wed Jan 20: Parallel matrix multiplication, cache issues.
[slides on complexity notation
and matrix multiplication]
Reading:
Cilk e-book
sections 1 and 2 (parallelism, work and span laws).
(Homework 2 due, Homework 3 assigned)
Mon Jan 25: (JRG travel, no class)
Wed Jan 27: Multicore, shared memory, and Cilk++ (Aydın Buluc, guest lecturer). [slides on introduction to multicore] [also in pdf ]
Mon Feb 1: Divide and conquer examples using Cilk++
(Aydın Buluc, guest lecturer). [slides on parallel sorting in shared memory]
[also in pdf ]
More Cilk++ references are added
Wed Feb 3: Scientific examples using Cilk++ and the use of Hyperobjects
(Aydın Buluc, guest lecturer). [slides on matrix multiplies and hyperobjects]
[also in pdf ]
(Homework 3 due, Homework 4 assigned)
Mon Feb 8: Midterm 1. [syllabus and rules, sample questions]
Wed Feb 10: Spatially local computations:
game of Life, temperature problem.
[Wikipedia on
Life;
java Life simulator;
slides on bone density modeling;
Matlab temperature data
and transcript]
Reading: Textbook sections 6.1 - 6.3 (synchronous iteration).
(Homework 4 due, Homework 5 assigned)
Mon Feb 15: (Presidents' holiday, no class)
Wed Feb 17: Final projects; stencil computation; Jacobi relaxation.
[Matlab Jacobi code;
slides on Jacobi]
Read the requirements for the final project, above on this page.
Mon Feb 22: Meshes, sparse matrices, conjugate gradients, matrix-vector multiplication. [slides]
Wed Feb 24: Matrices and graphs;
graph partitioning;
maximal independent set.
[Matlab code for
mesh partitioning
(say "meshdemo" and "help meshpart" to Matlab)]
Reading: "Graph Analysis with High-Performance Computing,"
passed out in class.
(Homework 5 due, Final project teams and proposals due)
Mon Mar 1: Graph algorithms and multithreaded architectures. [slides, Matlab code for independent sets]
Wed Mar 3: Midterm 2. [syllabus and rules, sample questions]
Mon Mar 8: All questions answered.
(Final project progress reports due)
Wed Mar 10: (No class, JRG at Georgia Tech)
Tue Mar 16: Final project demos in CSIL, 3:00-5:30 pm. [schedule]
(Final project reports due 11:59pm Thu Mar 18)