.. _doc_externalsoftware: *************************** Supported External Software *************************** PETSc interfaces with many optional external software packages. See :ref:`installing packages ` for more information on downloading and installing these softwares, as well as the :doc:`linear solve table ` for more information on the intended use-cases for each software. Partial List Of Software ======================== - `AMD `__ Approximate minimum degree orderings. - `BLAS/LAPACK `__ Optimizes linear algebra kernels (always available). - `CUDA `__ A parallel computing platform and application programming interface model created by NVIDIA. - `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. - `Git `__ Distributed version control system - `HDF5 `__ A data model, library, and file format for storing and managing data. - `Hypre `__ LLNL preconditioner library. - `Kokkos `__ A programming model in C++ for writing performance portable applications targeting all major HPC platforms- `LUSOL `__ Sparse LU factorization and solve portion of MINOS, Michael Saunders, Systems Optimization Laboratory, Stanford University. - `Mathematica `__ A general multi-paradigm computational language developed by Wolfram Research. - `MATLAB `__ A proprietary multi-paradigm programming language and numerical computing environment developed by MathWorks. - `MUMPS `__ MUltifrontal Massively Parallel sparse direct Solver. - `MeTis/ParMeTiS `__ A serial/parallel graph partitioner. - `Party `__ A graph partitioning package. - `PaStiX `__ A parallel LU and Cholesky solver package. - `PTScotch `__ A graph partitioning package. - `SPAI `__ 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 `__ 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. Additional Software =================== 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 :ref:`installation ` instructions). PETSc documentation has been generated using: - `Sowing `__ - `c2html `__ - `Python `__ - `Sphinx `__