xref: /petsc/doc/install/external_software.md (revision 49c2f9045d3a91e7be182f7f53e05380f8af9fad)
1*9b92b1d3SBarry Smith(doc_externalsoftware)=
2*9b92b1d3SBarry Smith
3*9b92b1d3SBarry Smith# Supported External Software
4*9b92b1d3SBarry Smith
5*9b92b1d3SBarry SmithPETSc interfaces with many optional external software packages. See {ref}`installing
6*9b92b1d3SBarry Smithpackages <doc_config_externalpack>` for more information on downloading and installing
7*9b92b1d3SBarry Smiththese software, as well as the {doc}`linear solver table
8*9b92b1d3SBarry Smith</overview/linear_solve_table>` for more
9*9b92b1d3SBarry Smithinformation on the intended use-cases for each software.
10*9b92b1d3SBarry Smith
11*9b92b1d3SBarry Smith## Partial List Of Software
12*9b92b1d3SBarry Smith
13*9b92b1d3SBarry Smith- [AMD](http://www.cise.ufl.edu/research/sparse/amd/) Approximate minimum degree orderings.
14*9b92b1d3SBarry Smith- [BLAS/LAPACK](https://www.netlib.org/lapack/lug/node11.html) Optimizes linear algebra kernels (always available).
15*9b92b1d3SBarry Smith- [CUDA](https://developer.nvidia.com/cuda-toolkit) A parallel computing platform and application programming interface model created by NVIDIA.
16*9b92b1d3SBarry Smith- [Chaco](http://www.cs.sandia.gov/CRF/chac.html) A graph partitioning package.
17*9b92b1d3SBarry Smith- [ESSL](https://www.ibm.com/support/knowledgecenter/en/SSFHY8/essl_welcome.html) IBM's math library for fast sparse direct LU factorization.
18*9b92b1d3SBarry Smith- [FFTW](http://www.fftw.org/) Fastest Fourier Transform in the West, developed at MIT by Matteo Frigo and Steven G. Johnson.
19*9b92b1d3SBarry Smith- [Git](https://git-scm.com/) Distributed version control system
20*9b92b1d3SBarry Smith- [HDF5](http://portal.hdfgroup.org/display/support) A data model, library, and file format for storing and managing data.
21*9b92b1d3SBarry Smith- [Hypre](https://computing.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods) LLNL preconditioner library.
22*9b92b1d3SBarry Smith- [Kokkos](https://github.com/kokkos/kokkos) A programming model in C++ for writing performance portable applications targeting all major HPC platforms
23*9b92b1d3SBarry Smith- [LUSOL](https://web.stanford.edu/group/SOL/software/lusol/) Sparse LU factorization and solve portion of MINOS, Michael Saunders, Systems Optimization Laboratory, Stanford University.
24*9b92b1d3SBarry Smith- [Mathematica](http://www.wolfram.com/) A general multi-paradigm computational language developed by Wolfram Research.
25*9b92b1d3SBarry Smith- [MATLAB](https://www.mathworks.com/) A proprietary multi-paradigm programming language and numerical computing environment developed by MathWorks.
26*9b92b1d3SBarry Smith- [MUMPS](https://mumps-solver.org/) MUltifrontal Massively Parallel sparse direct Solver.
27*9b92b1d3SBarry Smith- [MeTis](https://github.com/KarypisLab/METIS) and [ParMeTiS](https://github.com/KarypisLab/PARMETIS) serial/parallel graph partitioners.
28*9b92b1d3SBarry Smith- [Party](https://www.researchgate.net/publication/2736581_PARTY_-_A_software_library_for_graph_partitioning) A graph partitioning package.
29*9b92b1d3SBarry Smith- [PaStiX](https://gforge.inria.fr/projects/pastix/) A parallel LU and Cholesky solver package.
30*9b92b1d3SBarry Smith- [PTScotch](http://www.labri.fr/perso/pelegrin/scotch/) A graph partitioning package.
31*9b92b1d3SBarry Smith- [SPAI](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-09766-4_144) Parallel sparse approximate inverse preconditioning.
32*9b92b1d3SBarry Smith- [SPRNG](http://www.sprng.org/) The Scalable Parallel Random Number Generators Library.
33*9b92b1d3SBarry Smith- [Sundial/CVODE](https://computation.llnl.gov/projects/sundials) The LLNL SUite of Nonlinear and DIfferential/ALgebraic equation Solvers.
34*9b92b1d3SBarry Smith- [SuperLU](https://crd-legacy.lbl.gov/~xiaoye/SuperLU/#superlu) and [SuperLU_Dist](https://crd-legacy.lbl.gov/~xiaoye/SuperLU/#superlu_dist) Robust and efficient sequential and parallel direct sparse solves.
35*9b92b1d3SBarry Smith- [Trilinos/ML](http://trilinos.org/) Multilevel Preconditioning Package. Sandia's main multigrid preconditioning package.
36*9b92b1d3SBarry Smith- [SuiteSparse, including KLU, UMFPACK, and CHOLMOD](http://faculty.cse.tamu.edu/davis/suitesparse.html) Sparse direct solvers, developed by Timothy A. Davis.
37*9b92b1d3SBarry Smith- [ViennaCL](http://viennacl.sourceforge.net/) Linear algebra library providing matrix and vector operations using OpenMP, CUDA, and OpenCL.
38*9b92b1d3SBarry Smith
39*9b92b1d3SBarry Smith## Additional Software
40*9b92b1d3SBarry Smith
41*9b92b1d3SBarry SmithPETSc contains modifications of routines from:
42*9b92b1d3SBarry Smith
43*9b92b1d3SBarry Smith- LINPACK (matrix factorization and solve; converted to C using f2c and then
44*9b92b1d3SBarry Smith  hand-optimized for small matrix sizes)
45*9b92b1d3SBarry Smith- MINPACK (sequential matrix coloring routines for finite difference Jacobian evaluations;
46*9b92b1d3SBarry Smith  converted to C using f2c)
47*9b92b1d3SBarry Smith- SPARSPAK (matrix reordering routines, converted to C using f2c, this is the PUBLIC
48*9b92b1d3SBarry Smith  DOMAIN version of SPARSPAK)
49*9b92b1d3SBarry Smith- libtfs (the scalable parallel direct solver created and written by Henry Tufo and Paul
50*9b92b1d3SBarry Smith  Fischer).
51*9b92b1d3SBarry Smith
52*9b92b1d3SBarry SmithInstrumentation of PETSc:
53*9b92b1d3SBarry Smith
54*9b92b1d3SBarry Smith- PETSc can be instrumented using the [TAU](http://www.cs.uoregon.edu/research/paracomp/tau/tautools/) package (check
55*9b92b1d3SBarry Smith  {ref}`installation <doc_config_tau>` instructions).
56*9b92b1d3SBarry Smith
57*9b92b1d3SBarry SmithPETSc documentation has been generated using:
58*9b92b1d3SBarry Smith
59*9b92b1d3SBarry Smith- [Sowing](http://wgropp.cs.illinois.edu/projects/software/sowing/index.html)
60*9b92b1d3SBarry Smith- [c2html](https://sources.debian.org/copyright/license/c2html/)
61*9b92b1d3SBarry Smith- [Python](https://www.python.org/)
62*9b92b1d3SBarry Smith- [Sphinx](https://www.sphinx-doc.org/en/master/)
63