AMS 290B - Winter 2008
Advanced Topics in the Solution of Partial Differential Equations
Topic for 2008: An Introduction to Parallel Computing and Large Computational Fluid Dynamics Codes
This brand new graduate course is designed to introduce people to the world of big numerical simulations. Nowadays, science is strongly driven by our ability to solve big and tough problems on computers. Powerful computers are becoming more and more common, and multiprocessor machines are showing up in departments and even on desktops. The power in these machines lies in the ability to parallelise the problem efficiently. This is not an easy task.
This graduate course aims to help the novice understand what is necessary to use these powerful machines.
The course will cover (roughly):
- Part A: Concepts (Weeks 1-3)
- Parallel hardware architecture
- Parallel programming models
- Parallel code design methodology
- Part B: Tools (Weeks 4-6)
- MPI
- OpenMP
- Co-Array Fortran (maybe)
- Performance tools
- Debugging tools
- Visualisation tools (maybe)
- Part C: Case Studies from CFD (Weeks 7-8)
- A spectral code (Brummell)
- A finite volume code (Stellmach)
- Possibly some other codes
- Part D: Issues for parallel turbulent CFD codes (maybe) (Weeks 9-10)
- Direct Numerical Simulation (DNS) vs. Large-Eddy Simulation (LES)
- Adaptive Mesh Refinement (AMR)
- etc
General Class Information
- Instructor:
- Name: Nic Brummell (brummell at soe.ucsc.edu)
- Phone: 9-2122
- Office: BE 125
- Instructor Office Hours:
- By appointment
Materials
Lecture Notes
Lectures Part A: Concepts
- Lecture 0
- Scribbles -- Part A: Chapter 1 (part I)
- Scribbles -- Part A: Chapter 1 (part II)
- Scribbles -- Part A: Chapter 1 (part III)
- Powerpoint PDF: Parallel machine models
- Powerpoint PDF: Parallel programming models
- Powerpoint PDF: Designing parallel algorithms - Part 1
- Powerpoint PDF: Designing parallel algorithms - Part 2
- Powerpoint PDF: A quantative basis for design - Part1
- Powerpoint PDF: A quantative basis for design - Part2
- Powerpoint PPT: A quantative basis for design
- Powerpoint PDF: Putting components together
- Powerpoint PPT: Putting components together
Lectures Part B: Tools
MPI Tutorial stuff:
OpenMP Tutorial stuff:
Lecture notes on High Performance Fortran and Co-Array Fortran:
Lecture notes on Performance Analysis, Debugging and Visualisation:
Lectures Part C: Case Studies
Lectures Part D: Issues for numerical simulations of turbulence
Homeworks
HW1:
Describe an interesting machine. Use the Powerpoint template below.
computer.ppt -- Powerpoint template for Homework 1HW2:
Re-do the pairwise interaction problem for symmetric interactions so that no redundant computing is done. You may create new channels but minimise communication costs.HW3:
Design algorithms using the PCAM design technology for an atmospheric model and for microchip real estate
Powerpoint description of problems for Homework 3HW4:
Figure out the scaling analysis for a 2D decomposition of the cannonical 9-pt stencil finiite-difference algorithm given at the end of
this weeks lecture notes4HW5:
Write the following MPI programs:
MPI HomeworkMPI PROJECT:
Build a parallel version of the Game of Life simulation:
MPI Project: Game of Life SimulationHW6:
Do the exercises from the OpenMP tutorial here

