The Portable Extensible Toolkit for Scientific computing (PETSc) is a modular library for scalable numerical solution of complex problems in science and engineering. It is designed primarily for typical computations connected with PDE solution, but is already successfully used also e.g. in data science. It covers large sparse matrices, linear algebra, non-linear solvers, time integrators, optimization, discretization and more. Applications built on top of PETSc can be used on laptops as well as supercomputers with no code changes.
The course will interleave theory and practice - presentations and hands-on exercises. There will be an emphasis on coding and experimenting with command-line options. The principal purpose is that attendants build the skills necessary to employ and evaluate PETSc solvers in their everyday computational tasks.
The first day of the tutorial will focus on basic usage of PETSc for linear algebra and linear system solution. It will cover vectors, matrices and basic operations with them. Then we will deal with linear system solution using direct and iterative solvers, and preconditioners. The participants will also find out about the overall programming paradigm, useful utility functions, debugging and performance analysis.
The second day, more advanced topics will follow: nonlinear and mathematical optimization solvers, PETSc discretization capabilities for structured and unstructured grids, and SLEPc library augmenting PETSc with eigenvalue analysis capabilities
During the registration, the participants will have the option to choose to attend just one (basic or advanced) day, or both training days.
Purpose of the course (benefits for the attendees)
Participants will gain the skills necessary to employ and evaluate PETSc solvers for complex problems in science and engineering.
About the tutor
Vaclav Hapla was a researcher at IT4Innovations National Supercomputing Center from 2011 to 2017. Here, he was the principal developer of the open source PERMON libraries based on top of PETSc. His research was focused on massively parallel implementation of scalable domain decomposition methods (DDM) and quadratic programming (QP) algorithms.
In 2017, he obtained a postdoc position at the Department of Earth Sciences at ETH Zürich. There, he became a member of the Seismology and Waveform Physics group. So far, he has been dealing with improving PETSc parts needed within the Salvus open source software suite for full waveform modelling and inversion.
He is the author of the PRACE video tutorials about PETSc (available on YouTube); he led full-day PETSc tutorials at the PRACE Spring School 2012, Krakow, Poland, and the PRACE Autumn School 2016, Linz, Austria; he also co-organized the PRACE Summer School 2013, Ostrava, Czech Republic (PETSc, libMesh). He was awarded the First Prize in the Joseph Fourier Prize 2014 in the field of computational science.