A "Hands-On" Introduction to PETSc (with an Overview of Other Public-Domain Parallel Mathematical Libraries)
Day 1
Jed Brown, ETH Zurich:
1. Introduction to the PETSc Parallel Programming Model
a. collective semantics
b. runtime control using the options database
c. installation and plugins
2. (Jacobian-free) Newton-Krylov Methods in PETSc
a. algorithmic framework
b. what code needs to be written?
c. composability
- multilevel/domain decomposition
- field-split relaxation/factorization
- checking for correctness
- debugging tools
Day 2
Jed Brown, ETH Zurich:
1. PETSc Performance and Scalability
a. bottlenecks of implicit solvers
- cache effects and sparse matrix kernels
- communication
b. profiling tools
c. granularity
d. handling coarse levels
e. robustness tradeoffs
a. indefinite and stiff-wave systems
b. anisotropy and heterogeneity
c. preconditioning Schur complements
d. custom smoothers
e. custom coarse levels
f. implementing as a plugin for maximum composability
Dr. William Sawyer, CSCS:
3. Overview of Public-Domain Parallel Libraries
a.Dense linear algebra libraries
b. Sparse direct solvers
c. Sparse iterative solvers
d. Sparse eigenvalue/vector solvers
e. Partitioning methods
f. Optimization methods
4. The Trilinos Object-Oriented Parallel Framework
a. Distributed matrices and vectors
b. Iterative solvers
c. Incomplete factorizations / preconditioners
d. Non-linear system solverse. Partitioning and load balance
5. Application Case Studies using a Selection of Common Libraries (tar zipped file)
a. Dense linear algebra
b. Sparse eigensolvers
c. Sparse matrix and vector manipulation


