The current version of PETSc is 2.0.17; released April 5, 1997.


Recent paper on the PETSc parallel design: Efficient Management of Parallelism in Object-Oriented Numerical Software Libraries. To appear in Modern Software Tools in Scientific Computing, E. Arge, A. M. Bruaset and H. P. Langtangen, Ed., Birkhauser Press, 1997.

Unofficial PETSc benchmarks: Single processor floating point performance of the PETSc sparse matrix vector product and linear system solve (with GMRES and preconditioner ILU(0)) for a 1503 by 1503 sparse matrix with a block size of three, using the SeqBAIJ matrix data structure. These tests were run using the SLES example src/sles/examples/tutorials/ex10.c.


  • Overview
  • Features of PETSc 2.0
  • Documentation including Online Man Pages
  • Obtaining and Installing PETSc
  • PETScView - Visualization of PETSc Programs
  • The PETSc Team
  • PETSc Users Mailing List
  • Support and Submitting Bug Reports
  • Design of PETSc: Talks and Papers
  • Online Tutorials
  • Computational Science Applications using PETSc

  • Overview

    PETSc, the Portable, Extensible Toolkit for Scientific Computation is a suite of data structures and routines for the uni- and parallel-processor solution of large-scale scientific application problems modeled by partial differential equations.

    PETSc 2.0 is fully usable from Fortran, C/C++, and runs on most machines, now including Windows NT/95.



    Features of PETSc 2.0

  • Parallel vectors.
  • Parallel scatters and gathers.
  • Parallel matrices, including several sparse matrix storage formats.
  • Easy, efficient parallel matrix assembly.
  • Sequential sparse matrix direct solvers.
  • Scalable parallel preconditioners and Krylov subspace methods, including ICC, ILU, block Jacobi, overlapping Schwarz, CG, GMRES, Bi-CG-stab.
  • Scalable parallel nonlinear equation solvers, including line search and trust region Newton methods.
  • Scalable parallel unconstratined minimization solvers, including line search and trust region Newton methods.
  • Simple parallel ODE solvers for application of the method of lines to large scale nonlinear (or linear) time-dependent PDEs.
  • Distributed arrays.
  • Automatic profiling of floating point and memory usage.
  • Consistent interface for all solvers and data structures.
  • Complete documentation including users manual and man pages.
  • Intensive error checking.
  • Portable to all reasonable UNIX systems and Windows NT/95.
  • PETSc is supported and will be actively enhanced for the next several years.
  • More details on some of the important PETSc components


    PETSc Documentation

    PETSc is a sophisticated package; as such, fully understanding its its usage and design requires some time. However, application programmers can easily begin to use PETSc from a high level, and then gradually learn more details about various facets of the software according to their needs. To ease this transition, PETSc is fully documented, including a users manual and complete manual pages for every function. There are over 100 examples demonstrating software use for a variety of problem classes. Users should read the users manual before attempting to do any serious coding with PETSc!

    PETSc is not for everyone; if your problem can be coded efficiently and relatively easily with, for example, Matlab, then you should use Matlab. If you have little experience with programming on a Unix machine, then it may require some time to get up to snuff using PETSc, since it employs many advanced features of Unix utilities (e.g., make). PETSc is intended to make the development of large-scale codes tractable; thus, our design emphasis has been on features required in large projects, not on making it trivial to run simple problems.

    One page summary of PETSc, also in PostScript.

  • PETSc Users Manual (in HTML)
  • PETSc Man Pages (in HTML)
  • Introduction to PETSc (in Postscript) - Part I of the Users Manual
  • Users Manual (in Postscript)

  • Obtaining and Installing PETSc

    PETSc is available by anonymous ftp from info.mcs.anl.gov in pub/petsc as petsc.tar.Z or petsc.tar.gz and the bugfixes are in BUGLIST

    For Windows NT and Windows 95 using the Microsoft Developers Studio (Visual C++) retrieve petsc.zip

  • Instructions for installing PETSc
  • Details of the machines we currently support
  • Changes and new features in recent versions of PETSc
  • Trouble shooting guide for PETSc
  • Performance enhancement tips for PETSc programs
  • Suggestions for managing PETSc application codes
  • The PETSc FAQ
  • FTP README file
  • Before installing PETSc, the following software packages must be installed on your machine. Many systems will already have them installed; speak to your system administrator.

  • BLAS and LAPACK in blas_lapack.tar.Z or in blas_lapack.tar.gz.
  • An implementation of MPI; we recommend MPICH (more info).
  • BlockSolve95 (optional) - parallel ICC(0) and ILU(0) (more info).
  • If you are ONLY planning to use PETSc as a sequential library, you do NOT have to install MPI before installing PETSc. See the file Installation (also available in the main directory of the PETSc distribution) for details on installing PETSc without MPI.

    Once you have untarred the PETSc directory, but before installing, check the BUGLIST for patches/fixes you may need to make.

    You can also browse all of the PETSc source code without retrieving it. Since we use wide source (100 characters per line), you probably will want to widen your browser window accordingly.


    PETScView

    PETSc comes with high level tools for profiling and visualizing PETSc programs. A short description of PETScView and example output are available in PostScript.


    The PETSc Team

    Satish Balay
    William Gropp
    Lois Curfman McInnes
    Barry Smith

    Mathematics and Computer Science Division
    Argonne National Laboratory.


    PETSc Questions and Bug Reports

    Please send all maintenance requests and questions to the PETSc developers at petsc-maint@mcs.anl.gov . Please do not send maintenance requests to the individual PETSc authors; all e-mail to petsc-maint@mcs.anl.gov is automatically distributed to all of the PETSc authors, so our response time using this address will be fastest.


    PETSc Users Mailing List

    You can join the PETSc users mailing list by sending email to majordomo@mcs.anl.gov with the message, "subscribe petsc-users". We will update users regarding new releases, changes, etc. through this mailing list.


    The PETSc Design: Talks and Papers

    Several papers describe various facets of our design philosophy:

    S. Balay, W. D. Gropp. L. C. McInnes, and B. F. Smith, Efficient Management of Parallelism in Object-Oriented Numerical Software Libraries. To appear in Modern Software Tools in Scientific Computing, E. Arge, A. M. Bruaset and H. P. Langtangen, Ed., Birkhauser Press, 1997.

    L. C. McInnes and B. F. Smith, PETSc 2.0: A case study of using MPI to develop numerical software libraries [View document in hypertext format]. [Get the PostScript version]. This is our contribution to the 1995 MPI Developers Conference, held at the University of Notre Dame, June 22 and 23, 1995.

    W. D. Gropp and B. F. Smith, The design of data-structure-neutral libraries for the iterative solution of sparse linear systems, Scientific Programming, 1996, Vol. 5, pp. 329--336.

    W. D. Gropp and B. F. Smith, Scalable, extensible, and portable numerical libraries, Proceedings of the Scalable Parallel Libraries Conference, IEEE 1994, pp. 87-93.

    W. D. Gropp, L. C. McInnes, and B. F. Smith, Scalable libraries for solving systems of nonlinear equations and unconstrained minimization problems, Proceedings of the Scalable Parallel Libraries Conference, IEEE 1995, pp. 60-67.

    Abstract discussing PETSc design and use within a reacting flow code in PostScript.

    Talks related to PETSc: Slides from 1996 SIAM Annual Meeting mini-symposium on Numerical Simulation of Oil and Gas Reservoirs in PostScript.

    Poster from 1996 MPI Developers Meeting in PostScript.

    Three examples demonstrating the use of PETSc for linear, nonlinear and time dependent problems - slides in PostScript.

    Workshop on Iterative Methods for Large Scale Nonlinear Systems, September 1995, Logan, Utah - slides in PostScript.

    OONSCI 96, Workshop on Object Oriented Numerical Software, March 1996. Overview of PETSc 2.0 - slides in PostScript.

    Discussion of reacting flow application written using PETSc - slides in PostScript.

    Discussion of implementing multigrid algorithms using PETSc and its abstract multigrid concepts. Suitable for viewing on screen. Suitable for printing. Presented at the Ninth GAMM workshop on Parallel Multigrid Methods, May 13-17, 1996

    Discussion of PETSc 2.0 for applications. Suitable for viewing on screen. Suitable for printing. Presented in Stockholm, May 30-31, 1996

    Slides from 1995 MPI Developers Meeting in PostScript.

    Designing a scalable and portable numerical library requires consideration of many factors, including choice of parallel communication technology, data structures, and user interfaces. The PETSc package uses modern software technology to provide a portable, flexible, and extensible library environment. Thus, the package serves a wide range of users with varying needs and different levels of experience, including algorithmic researchers as well as black-box and high-performance application programmers.

    We use an aggressive data-structure-neutral implementation that minimizes dependence on particular data structures (even vectors). This approach permits separation of the implementation language from the user-interface language and enables the library to adapt to the user, rather than the other way around. Issues of parallelism are separated from the choice of algorithms.


    PETSc Tutorials

    We are currently developing an on-line tutorial in conjunction with our PETSc Bring Your Own Code (BYOC) Workshops. Stay tuned for further details.

    Liyang Xu and Tom Robey have developed an on-line PETSc tutorial at the University of New Mexico.


    PETSc Computational Science Applications

    Computational science presents a variety of challenges, including the coordination of detailed physical models and various algorithmic approaches. The complexity inherent in these applications demands a framework such as PETSc that provides broad-based infrastructure with provisions for easy customization and extension. By devoting strict attention to component interoperability, PETSc enables the integration of independently developed application modules, which often most naturally employ different coding styles and data structures. In addition, users can seamlessly replace models as well as combine and nest algorithms.

    Several ongoing computational science projects are built around the PETSc 2.0 framework. Within each of these projects PETSc facilitates the efficient solution of PDEs by managing the complexity of evolving data structures and detailed simulation models, and by providing access to the latest linear algebra solution technology. These projects include:

  • Multi-Model Multi-Domain Computational Methods in Aerodynamics and Acoustics

    This NSF funded multidisciplinary research project focuses on the development of effective multi-domain parallel solutions to multi-model coupled field problems. Here PETSc provides the foundation for designing advanced domain decomposition software for use within the context of a numerical laboratory for engineering analysis.

    PIs - David Keyes, Alex Pothen (Old Dominion University); Hafiz Atassi (University of Notre Dame); Xiao-Chuan Cai (University of Colorado-Boulder); William Gropp, Lois Curfman McInnes, Barry Smith (Argonne National Laboratory); Olof Widlund (Courant Institute of Mathematical Sciences, NYU); David P. Young (Boeing Computer Services).

  • Development of a New Generation Framework for Petroleum Reservoir Simulation

    The goal of this project, which is an Advanced Computational Technology Initiative of DOE, is the design of a prototype code supporting complex reservoir description with three-dimensional seismic and geostatistical models, irregular gridding, and multiple model realizations. Within this project PETSc provides the foundation of linear algebra and nonlinear solvers for developing an object oriented framework for general purpose parallel reservoir simulation.

    PIs - William Gropp, Tom Morgan, Barry Smith (Argonne National Laboratory); Mary Wheeler, Gary Pope, Kamy Sepehrnoori, Todd Arbogast, Clint Dawson, Daene McKinney, Larry Lake (University of Texas at Austin).


  • The documentation for PETSc was created using the doctext and tohtml text processing packages written by William Gropp. More information regarding this software may be obtained from gropp@mcs.anl.gov