Parallel scalable scientific computing with PETSc

  • Published: 2014-12-08
  • 2191

Lecture 1: Introduction to parallel scientific computing
- typical scientific and engineering problems: PDEs & ODEs
- Newton’s method, discretizations and how they lead to large-scale (sparse) linear algebra
- Need for parallelization and different programming models: MPI, shared memory, CUDA
- Different types of hardware and their limitations: memory hierarchy, memory bandwidth
- Parallelization strategies: domain-decomposition (MPI), vectorization (CUDA)

Lecture 2: Introduction to PETSc
- Parallel scalable sparse linear algebra
- Direct methods vs iterative methods
- Linear algebra abstractions and their implementation in PETSc
- Installing PETSc, running examples, getting help
- Who uses PETSc (government research, universities, industry)?
- What machines does PETSc run on (from laptop to largest scalability on ~100K nodes)?

Lecture 3: PETSc design and structure
- PETSc is a platform for experimentation
- Krylov subspace methods (CG, GMRES), need for preconditioning
- Linear and nonlinear PDEs in PETSc
- Time-dependent problems in PETSc
- PETSc interface to other packages (HYPRE, MUMPS,SUNDIALS, BoomerAMG, ...)

Lecture 4. Mesh support in PETSc
- structured and unstructured grids
- mesh partitioning, distribution, load-balancing
- finite-difference and finite-element methods in PETSc
- ghosting, stencils and boundary condition handling

Lectures 5-6. Preconditioning
- Domain-decomposition preconditioners
- Geometric multigrid preconditioners, numerical homogenization
- Matrix-free problems and their preconditioning
- Multiphysics problems, ”physics-based” preconditioning
- JFNK(S) paradigm [Jacobian-free Newton-Krylov (Schwarz)]
- Grid sequencing, ”preconditioning” nonlinear problems
- Nonlinear hydrostatic ice model (due to Jed Brown): achieving textbook MG scaling

Lecture 7. Advanced topics
- Advanced time-stepping algorithms
- Symplectic and multi-symplectic integrators in PETSc

Dmitry Karpeev
September 2010
Mathematics and Computer Science Division Argonne National Laboratory