| PETSc | |
|---|---|
| Stable release | 3.24 / 29 September 2025; 4 months ago (2025-09-29) |
| Operating system | Linux,Unix,Mac OS X,Windows |
| Available in | C, Python, Fortran |
| Type | Scientific simulation software |
| License | BSD 2-clause license |
| Website | petsc |
| Repository | |
ThePortable, Extensible Toolkit for Scientific Computation (PETSc, pronounced PET-see; the S is silent), is a suite ofdata structures androutines developed byArgonne National Laboratory for thescalable (parallel) solution ofscientific applications modeled bypartial differential equations. It employs theMessage Passing Interface (MPI) standard for all message-passing communication. PETSc is the world’s most widely used parallel numerical software library forpartial differential equations andsparse matrix computations. PETSc received an R&D 100 Award in 2009.[1][2][3] The PETSc Core Development Group won the SIAM/ACM Prize in Computational Science and Engineering for 2015.[4]
PETSc is intended for use inlarge-scale application projects, many ongoing computational science projects are built around the PETSclibraries. Its careful design allows advanced users to have detailed control over the solution process. PETSc includes a large suite of parallellinear andnonlinearequation solvers that are easily used in application codes written inC,C++,Fortran and nowPython. PETSc provides many of the mechanisms needed within parallel application code, such as simple parallelmatrix andvector assembly routines that allow the overlap ofcommunication andcomputation. In addition, PETSc includes support for parallel distributedarrays useful forfinite difference methods.[5]

PETSc consists of a variety of components consisting of majorclasses and supporting infrastructure. Users typically interact withobjects of the highest level classes relevant to their application, essential lower level objects such as vectors, and may customize or extend any others. All major components of PETSc have an extensible plugin architecture.
PETSc provides many features for parallel computation, broken into several modules:
{{cite web}}: CS1 maint: archived copy as title (link){{cite web}}: CS1 maint: numeric names: authors list (link){{cite web}}: CS1 maint: archived copy as title (link)