skip to main content
OSTI.GOV title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: PETSc/TAO Users Manual (Rev. 3.19)

Technical Report ·
DOI:https://doi.org/10.2172/1968587· OSTI ID:1968587
 [1];  [2];  [3];  [1];  [4];  [1];  [1];  [1];  [5];  [1];  [6];  [7];  [7];  [8];  [9];  [10];  [1];  [1];  [11];  [12] more »;  [13];  [14];  [1];  [1];  [15];  [1];  [16];  [17];  [18];  [1];  [19];  [5];  [20];  [1];  [1] « less
  1. Argonne National Laboratory (ANL), Argonne, IL (United States)
  2. Argonne National Laboratory (ANL), Argonne, IL (United States); Pacific Northwest National Laboratory (PNNL), Richland, WA (United States)
  3. Lawrence Berkeley National Laboratory (LBNL), Berkeley, CA (United States)
  4. Argonne National Laboratory (ANL), Argonne, IL (United States); Univ. of Colorado, Boulder, CO (United States)
  5. King Abdullah University of Science and Technology (KAUST), Thuwal (Saudi Arabia)
  6. Univ. of Texas, Austin, TX (United States)
  7. Argonne National Laboratory (ANL), Argonne, IL (United States); Univ. of Illinois at Urbana-Champaign, IL (United States)
  8. Eidgenoessische Technische Hochschule (ETH), Zurich (Switzerland)
  9. Argonne National Laboratory (ANL), Argonne, IL (United States); Georgia Institute of Technology, Atlanta, GA (United States)
  10. Sorbonne Univ., Paris (France); Inst. de Recherche en Informatique de Toulouse (France)
  11. Argonne National Laboratory (ANL), Argonne, IL (United States); Univ. at Buffalo, NY (United States)
  12. Argonne National Laboratory (ANL), Argonne, IL (United States); Idaho National Laboratory (INL), Idaho Falls, ID (United States)
  13. Tech-X Corp., Boulder, CO (United States)
  14. Univ. of Oxford (United Kingdom); Univ. of California, San Diego, CA (United States). Scripps Inst. of Oceanography
  15. NVIDIA Corporation, Santa Clara, CA (United States); Durham Univ. (United Kingdom)
  16. Spanish National Research Council and Polytechnic Univ. of Valencia, Valencia (Spain)
  17. Argonne National Laboratory (ANL), Argonne, IL (United States); Technische Univ. Wien (Austria)
  18. Argonne National Laboratory (ANL), Argonne, IL (United States); Eidgenoessische Technische Hochschule (ETH), Zurich (Switzerland)
  19. Argonne National Laboratory (ANL), Argonne, IL (United States); Flatiron Institute, New York, NY (United States)
  20. Argonne National Laboratory (ANL), Argonne, IL (United States); Illinois Institute of Technology, Chicago, IL (United States)

This manual describes the use of the Portable, Extensible Toolkit for Scientific Computation (PETSc) and the Toolkit for Advanced Optimization (TAO) for the numerical solution of partial differential equations and related problems on high-performance computers. PETSc/TAO is a suite of data structures and routines that provide the building blocks for the implementation of large-scale application codes on parallel (and serial) computers. PETSc uses the MPI standard for all distributed memory communication. PETSc/TAO includes a large suite of parallel linear solvers, nonlinear solvers, time integrators, and opti mization that may be used in application codes written in Fortran, C, C++, and Python (via petsc4py; see Getting Started). PETSc provides many of the mechanisms needed within parallel application codes, such as parallel matrix and vector assembly routines. The library is organized hierarchically, enabling users to employ the level of abstraction that is most appropriate for a particular problem. By using techniques of object-oriented programming, PETSc provides enormous flexibility for users. PETSc is a sophisticated set of software tools; as such, for some users it initially has a much steeper learning curve than packages such as MATLAB or a simple subroutine library. In particular, for individuals without some computer science background, experience programming in C, C++, python, or Fortran and experience using a debugger such as gdb or lldb, it may require a significant amount of time to take full advantage of the features that enable efficient software use. However, the power of the PETSc design and the algorithms it incorporates may make the efficient implementation of many application codes simpler than “rolling them” yourself. For many tasks a package such as MATLAB is often the best tool; PETSc is not intended for the classes of problems for which effective MATLAB code can be written. There are several packages, built on PETSc, that may satisfy your needs without requiring directly using PETSc. We recommend reviewing these packages functionality before starting to code directly with PETSc. PETSc can be used to provide a “MPI parallel linear solver” in an otherwise sequential, or OpenMP parallel code. This approach cannot provide extremely large improvements in the application time by utilizing large numbers of MPI processes but can still improve the performance. Certainly all parts of a previously sequential code need not be parallelized but the matrix generation portion must be parallelized to expect true scalability to large numbers of MPI processes. See PCMPI for details on how to utilize the PETSc MPI linear solver server. Since PETSc is under continued development, small changes in usage and calling sequences of routines will occur. PETSc has been supported for twenty-five years; see mailing list information on our website for information on contacting support.

Research Organization:
Argonne National Laboratory (ANL), Argonne, IL (United States)
Sponsoring Organization:
USDOE Office of Science (SC), Advanced Scientific Computing Research (ASCR)
DOE Contract Number:
AC02-06CH11357
OSTI ID:
1968587
Report Number(s):
ANL-21/39-Rev.3.19; 181821
Country of Publication:
United States
Language:
English

Similar Records

PETSc Users Manual (Rev. 3.3)
Technical Report · Sat May 11 00:00:00 EDT 2013 · OSTI ID:1968587

PETSc Users Manual (Rev. 3.4)
Technical Report · Sun Jun 29 00:00:00 EDT 2014 · OSTI ID:1968587

PETSc Users Manual (Rev. 3.5)
Technical Report · Mon Sep 08 00:00:00 EDT 2014 · OSTI ID:1968587

Related Subjects