PETSc Users Manual - Balay, S; Abhyankar, S; Adams, M; Brown, J; Brune, P; Buschelman, K; Dalcin, L; Dener, A; Eijkhout, V; Gropp, W; Karpeyev, D; Kaushik, D; et al. (Argonne National Laboratory, 2019)
The Portable, Extensible Toolkit for Scientific Computation (PETSc), is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It supports MPI, and GPUs through CUDA or OpenCL, as well as hybrid MPI-GPU parallelism. PETSc (sometimes called PETSc/Tao) also contains the Tao optimization software library.