AMS 290B - Winter 2012
Advanced Topics in the Solution of Partial Differential Equations
Topics for 2012: Introduction to Parallel Computing
I'll teach the graduate course AMS 290B in Winter 2012. The course is designed to teach
students Parallel Computing techniques. The students will be introduced into the world of
big numerical simulations, and learn how to run those simulations efficiently on parallel
computers, ranging from multi-core workstations to petacale supercomputers.
Tentatively, the course will cover the following topics:
- Part A: Concepts:
- Hardware architecture, including CPU, memory hierarchy, network, IO, etc
- Parallel programming models and code design methodology
- Part B: Tools:
- Multi-threading techniques, including OpenMP, POSIX threads, C++ threads, Grand Central Dispatch, etc
- Message Passing techniques, mostly covering MPI
- Hybrid programming techniques, combing MPI and OpenMP, etc
- MapReduce, etc (technologies used by Google, Facebook, etc)
- PGAS, including Unified Parallel C, Co-Array Fortran, Chapel, etc
- GPU computing: including CUDA and OpenCL, etc
- Customized hardware, including FPGA, GRAPE, etc
- Parallel libraries
- Profiling and Optimization
- Debugging tools
- Part C: Case Studies:
- N-body and SPH simulations
- Adaptive Mesh Refinement (Any Nonaka, LBL)
- Internals of the massively parallel visualization package VisIt (Hank Childs, LBL)
- To entice attendance, maybe computational finance?