Rough Syllabus
Part A: Concepts
(Weeks 1-2)
- Intro to Parallel Computing
- Parallel machine models
- Parallel programming models
(weeks 4-6)
- Designing Parallel Algorithms
- Partitioning, communication, agglomeration, mapping
- Performance analysis
Part B: Tools
(Weeks 2-4)
- Environment: Unix; vi; QSUB; svn, github?
- Programming: Fortran?
- Programming: MPI, OpenMP
(Week 7)
- Debugging, performance analysis
- Analysis: ? IDL? VAPOR? Python?
Part C: Specialty items
(Weeks 8-9)
- GPU, Intel Phi, ...
- Map-Reduce, Hadoop, ...
Part D: Case Studies
(Weeks 9-10)
- Spectral methods; Finite volume; Graphs; N-Body?
Notes:
Parts A and B will be run in parallel over the first 7 weeks or so :)