May 2 – 3, 2019
CSC - IT Center for Science
Europe/Helsinki timezone


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.

Learning outcome

After the course participants are able to: 

  • make use of the vast functionality available in PETSc to write their own programs, from mini-apps to bigger projects; 
  • write their PETSc-based programs in a way allowing experiments with command-line options with no need for recompiling for example, to apply different preconditioners to the same problem and compare their performance; 
  • add their own functionality if needed by extending prefabricated building blocks available in PETSc;
  • take advantage of the debugging and profiling tools within PETSc;
  • use PETSc as a "package manager" to fetch, compile and link various external libraries such as ParMETIS easily; 
  • do something more with PETSc, also based on their individual preferences.


Participants need some experience in C programming, but expertise is not required. One should be familiar with: 

  • C syntax;
  • Control flow (if/else, loops, writing/calling functions); 
  • Writing and calling functions;
  • Compiling a C program on their target platform. 

One also needs some conceptual knowledge of MPI: 

  • What is message passing about;
  • What are MPI communicators.

Course Outline

Thursday, May 2

Day 1Linear 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

CSC - IT Center for Science
Training room Dogmi, 1st floor
LIfe Science Center, Keilaranta 14, Espoo, Finland

How to reach us

CSC is located in Keilaniemi, Espoo, 10 km west of the Helsinki City Center. Detailed information is available here.


We recommend choosing a few hotels that are most close to our premises. The nearest hotel is Radisson Blu Espoo, which is in a walking distance (only 500 m) from CSC. Another hotel close to the venue (1,8 km) is Sokos Hotel Tapiola Garden. Other hotels are located in Helsinki' downtown with a frequent and fast metro connection to Keilaniemi. Please note, that there are no special rates for participants at any hotels.

If you have any questions, please click on the support link on the left to send an e-mail to the local organizers.