A "Hands-On" Introduction to PETSc (with an Overview of Other Public-Domain Parallel Mathematical Libraries), 5-6 May 2010

Day 1

Jed Brown, ETH Zurich

1. Introduction to the PETSc Parallel Programming Model

  • collective semantics

  • runtime control using the options database

  • installation and plugins

2. (Jacobian-free) Newton-Krylov Methods in PETSc

  • algorithmic framework

  • what code needs to be written?

  • composability

    • multilevel/domain decomposition
    • field-split relaxation/factorization
    • checking for correctness
    • debugging tools

Day 2

Jed Brown, ETH Zurich:

1. PETSc Performance and Scalability

  • bottlenecks of implicit solvers

    • cache effects and sparse matrix kernels
    • communication

  • profiling tools

  • granularity

  • handling coarse levels

  • robustness tradeoffs

2. Hard Problems

  • indefinite and stiff-wave systems

  • anisotropy and heterogeneity

  • preconditioning Schur complements

  • custom smoothers

  • custom coarse levels

  • implementing as a plugin for maximum composability

Dr. William Sawyer, CSCS:

3. Overview of Public-Domain Parallel Libraries

  • Dense linear algebra libraries

  • Sparse direct solvers

  • Sparse iterative solvers

  • Sparse eigenvalue/vector solvers

  • Partitioning methods

  • Optimization methods

4. The Trilinos Object-Oriented Parallel Framework

  • Distributed matrices and vectors

  • Iterative solvers

  • Incomplete factorizations / preconditioners

  • Non-linear system solverse. Partitioning and load balance

5. Application Case Studies using a Selection of Common Libraries (tar zipped file)

  • Dense linear algebra

  • Sparse eigensolvers

  • Sparse matrix and vector manipulation