The Portable Extensible Toolkit for Scientific computing (PETSc) is a software framework for scalable numerical solution of complex problems in science and engineering. It is designed primarily for typical computations connected with Partial Differential Equations (PDE) solution, but is already successfully used also e.g., in data science. PETSc provides implementations of distributed sparse/dense/unassembled matrices, linear algebra, linear/non-linear system solvers, time integrators, mathematical optimization, discretization and more. It can as well be selectively extended with user's own implementations at any level. Codes using PETSc can be compiled on a wide range of computer architectures from iPhone to a large cluster with no code changes. PETSc is written in C but can be employed e.g., in C++, Fortran and Python programs as well. The course will interleave theory and practice — presentations and hands-on exercises with individual consultations.
After the course participants are able to:
Participants need some experience in C programming, but expertise is not required. One should be familiar with:
One also needs some conceptual knowledge of MPI:
Thursday, May 2
Day 1 – Linear algebra and linear system solution
Introduction & Hello World
Objects
Vectors & Index Sets
Matrices
Linear System Solvers
Friday, May 3
Day 2 – Advanced topics
Technical Stuff (installation from source, use as package manager, start your own project, debug, profile)
Discretization (DM)
Advanced Solvers (SNES, TAO, SLEPc)
Extras (MATLAB interface, individual projects)
Vaclav Hapla (ETH)
Language: English
Price: Free of charge