PETSc: External Software

# PETSc

# External Software

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

- ADIFOR - automatic differentiation for the computation of sparse Jacobians.
- AMD - Approximate minimum degree orderings.
- AnaMod - a library of matrix analysis modules; part of the Salsa project.
- BLAS and LAPACK
- CUSP - a C++ templated sparse matrix library for CUDA GPUs.
- Chaco - a graph partitioning package.
- ESSL - IBM's math library for fast sparse direct LU factorization.
- FFTW - Fastest Fourier Transform in the West, developed at MIT by Matteo Frigo and Steven G. Johnson.
- Hypre - the LLNL preconditioner library.
- 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.
- PaStiX - a parallel LU and Cholesky solver package.
- PTScotch - a graph partitioning package.
- SPAI - for parallel sparse approximate inverse preconditioning.
- 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.
- SuiteSparse, including KLU, UMFPACK, and CHOLMOD - sparse direct solvers, developed by Timothy A. Davis.
- ViennaCL - Linear algebra library providing matrix and vector operations using OpenMP, CUDA, and OpenCL.

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)
- libtfs (the scalable parallel direct solver created and written by Henry Tufo and Paul Fischer).

Instrumentation of PETSc

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

PETSc software is developed and maintained with

- Git revision control system
- Emacs editor

PETSc documentation has been generated using

- the text processing tools developed by Bill Gropp
- c2html
- pdflatex
- python