PETSc

External Software



PETSc interfaces to the following optional external software (installing packages) (manual pages):

  • ADIC/ADIFOR -  automatic differentiation for the computation of sparse Jacobians.
  • AnaMod - a library of matrix analysis modules; part of the Salsa project.
  • BLAS and LAPACK
  • BlockSolve95 - for parallel ICC(0) and ILU(0) preconditioning, developed by Mark Jones and Paul Plassmann, the ILU was programmed by Wing-Lok Wan.
  • BLOPEX - Block Locally Optimal Preconditioned Eigenvalue Solvers developed by Andrew Knyazev.
  • Chaco - a graph partitioning package.
  • DSCPACK - a Domain-Separator Cholesky Package for solving sparse  symmetric positive-definite developed by Padma Raghavan.
  • ESSL - IBM's math library for fast sparse direct LU factorization.
  • Euclid - parallel ILU(k) developed by David Hysom, accessed through the Hypre  interface.
  • FFTW - Fastest Fourier Transform in the West, developed at MIT by Matteo Frigo and Steven G. Johnson.
  • Hypre - the LLNL preconditioner library.
  • Jostle - a graph partitioning package.
  • LUSOL - sparse LU factorization and solve portion of MINOS, Michael Saunders, Systems Optimization Laboratory, Stanford University.
  • Mathematica,
  • Matlab,
  • MUMPS - MUltifrontal Massively Parallel sparse direct Solver.
  • ParMeTiS - parallel graph partitioner.
  • Party - a graph partitioning package.
  • PLAPACK - Parallel Linear Algebra Package developed by Greg Baker, John Gunnels, Greg Morrow, Beatrice Riviere and Robert van de Geijn.
  • Prometheus - An extremely scalable unstructured finite element solver, developed by Mark Adams.
  • Scotch - a graph partitioning package.
  • SPAI - for parallel sparse approximate inverse preconditioning.
  • SPOOLES - SParse Object Oriented Linear Equations Solve developed by Cleve Ashcraft (use config/configure.py option --download-spooles to install; the publicly released version has a bug so does not work with PETSc).
  • SPRNG - The Scalable Parallel Random Number Generators Library.
  • Sundial/CVODE - the LLNL SUite of Nonlinear and DIfferential/ALgebraic equation Solvers.
  • SuperLU and SuperLU_Dist - robust and efficient sequential and parallel direct sparse solves.
  • Trilinos/ML - ML: Multilevel Preconditioning Package. Sandia's main multigrid preconditioning package.
  • UMFPACK - sparse direct solvers, developed by Timothy A. Davis.

PETSc contains modifications of routines from

  • LINPACK (matrix factorization and solve; converted to C using  f2c and then hand-optimized for small matrix sizes)
  • MINPACK (sequential matrix coloring routines for finite difference Jacobian evaluations; converted to C using f2c)
  • SPARSPAK (matrix reordering routines, converted to C using f2c, this is the PUBLIC DOMAIN version of SPARSPAK)
  • SPARSEKIT2 (written by Yousef Saad) (iludtp(), converted to C using f2c). These routines are copyrighted by Saad under the GNU copyright, see $(PETSC_DIR)/src/mat/impls/aij/seq/ilut.c, see also the PETSc copyright notice
  • libtfs (the scalable parallel direct solver created and written by Henry Tufo and Paul Fischer).

Instrumentation of PETSc

  • PETSc can instrumented using the TAU package [check installation instructions].

PETSc software is developed and maintained with 

PETSc documentation has been generated using