ArticleslgStudy

computer science

Portable, Extensible Toolkit for Scientific Computation

Portable, Extensible Toolkit for Scientific Computation is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Portable, Extensible Toolkit for Scientific Computation rather than just read about it. In short: The Portable, Extensible Toolkit for Scientific Computation (PETSc, pronounced PET-see; the S is silent), is a suite of data structures and routines developed by Argonne National Laboratory for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the Message Passing Interface (MPI) standard for all message-passing communication.

Portable, Extensible Toolkit for Scientific Computation — main illustration
Portable, Extensible Toolkit for Scientific Computation — illustration

Key takeaways

  • Portable, Extensible Toolkit for Scientific Computation belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Portable, Extensible Toolkit for Scientific Computation to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Portable, Extensible Toolkit for Scientific Computation from memory before moving on to harder problems.

Reference excerpt

The Portable, Extensible Toolkit for Scientific Computation (PETSc, pronounced PET-see; the S is silent), is a suite of data structures and routines developed by Argonne National Laboratory for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the Message Passing Interface (MPI) standard for all message-passing communication. PETSc is the world’s most widely used parallel numerical software library for partial differential equations and sparse matrix computations. PETSc received an R&D 100 Award in 2009. The PETSc Core Development Group won the SIAM/ACM Prize in Computational Science and Engineering for 2015. PETSc is intended for use in large-scale application projects, many ongoing computational science projects are built around the PETSc libraries. Its careful design allows advanced users to have detailed control over the solution process. PETSc includes a large suite of parallel linear and nonlinear equation solvers that are easily used in application codes written in C, C++, Fortran and now Python. PETSc provides many of the mechanisms needed within parallel application code, such as simple parallel matrix and vector assembly routines that allow the overlap of communication and computation. In addition, PETSc includes support for parallel distributed arrays useful for finite difference methods.

Components

PETSc consists of a variety of components consisting of major classes and supporting infrastructure. Users typically interact with objects of the highest level classes relevant to their application, essential lower level objects such as vectors, and may customize or extend any others. All major components of PETSc have an extensible plugin architecture.

Features and modules PETSc provides many features for parallel computation, broken into several modules:

Index sets, including permutations, for indexing into vectors, renumbering, etc. Parallel vectors; and matrices (generally sparse) Scatters (handles communicating ghost point information) and gathers (the opposite of scatters) Data management for parallel structured and unstructured meshes Several sparse storage formats Scalable parallel preconditioners, including multigrid and sparse direct solvers Krylov subspace methods Parallel nonlinear solvers, such as Newton's method and nonlinear GMRES Parallel time-stepping (ODE and DAE) solvers Parallel optimization solvers, such as BFGS Automatic profiling of floating point and memory usage Consistent interface Intensive error checking Portable to UNIX, Mac OS X, and Windows

See also List of numerical libraries List of open-source mathematical libraries

Notes

Bibliography PETSc Users Manual, Satish Balay, Shrirang Abhyankar, Mark F. Adams, Jed Brown, Peter Brune, Kris Buschelman, Victor Eijkhout, William D. Gropp, Dinesh Kaushik, Matthew G. Knepley, Lois Curfman McInnes, Karl Rupp, Barry F. Smith, and Hong Zhang, ANL-95/11 Revision 3.5, Argonne National Laboratory, June, 2014. Efficient Management of Parallelism in Object Oriented Numerical Software Libraries, Satish Balay, William D. Gropp, Lois Curfman McInnes, Barry F. Smith, Modern Software Tools in Scientific Computing, ed. Bruaset et al., pp. 163–202, 1997. Numerical simulation of geodynamic processes with the Portable Extensible Toolkit for Scientific Computation, R.F. Katz, M.G. Knepley, B. Smith, M. Spiegelman, and E.T. Coon, Physics of The Earth and Planetary Interiors, 163, pp. 52-68, 2007. Ed Bueler: "PETSc for Partial Differential Equations: Numerical Solutions in C and Python", SIAM, ISBN 978-1-611976-30-4 (2020).

External links The Official PETSc web site

Worked examples

Example 1 — a first encounter with Portable, Extensible Toolkit for Scientific Computation

Start with the simplest possible case. Write down what Portable, Extensible Toolkit for Scientific Computation claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Portable, Extensible Toolkit for Scientific Computation before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Portable, Extensible Toolkit for Scientific Computation ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Portable, Extensible Toolkit for Scientific Computation

In research
Portable, Extensible Toolkit for Scientific Computation appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Portable, Extensible Toolkit for Scientific Computation in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Portable, Extensible Toolkit for Scientific Computation is common in secondary-school and first-year university syllabi. It links to neighbouring topics C++ numerical libraries, Numerical libraries, Numerical linear algebra, so understanding it makes those chapters shorter.
In everyday life
Look for Portable, Extensible Toolkit for Scientific Computation outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Portable, Extensible Toolkit for Scientific Computation in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Portable, Extensible Toolkit for Scientific Computation means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Portable, Extensible Toolkit for Scientific Computation out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Portable, Extensible Toolkit for Scientific Computation in simple terms?

The Portable, Extensible Toolkit for Scientific Computation (PETSc, pronounced PET-see; the S is silent), is a suite of data structures and routines developed by Argonne National Laboratory for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It…

Why does Portable, Extensible Toolkit for Scientific Computation matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Portable, Extensible Toolkit for Scientific Computation?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Portable, Extensible Toolkit for Scientific Computation.

Tags

  • C++ numerical libraries
  • Numerical libraries
  • Numerical linear algebra
  • Scientific simulation software

Keep exploring